2017-02-26 8 views
0

私はタイトルをThis.から抽出しようとしていますが、resposnse urlのタイトルではない別のタイトルを取得しています。 私はthis-リクエストURLから間違った値を取得しています

class ElementSpider(scrapy.Spider): 
    name = 'qwerty4' 
    allowed_domains = ["burbank.com.au"] 
    start_urls = ["https://www.burbank.com.au/victoria/home-details/alphington-153-179727", "https://www.burbank.com.au/victoria/home-details/sandringham-151-171569", "https://www.burbank.com.au/victoria/home-details/sandringham-151-181680", "https://www.burbank.com.au/victoria/home-details/bellfield-184-171585", "https://www.burbank.com.au/victoria/home-details/carlton-178-172662", "https://www.burbank.com.au/victoria/home-details/carlton-178-178079" ] 

    def parse(self, response): 
     title = response.xpath('//div[@class="col-md-4 col-xs-12 col-sm-12"]/div[@class="housename"]/span/text()').extract()[0] 
     print response.url 
     print title 

をしようと、いくつかの要求のための間違ったデータを取得しています。出力は - enter image description here

問題を解決する方法を提案してください。

答えて

1

彼らは自分のウェブサイトを掻き上げたくないので、スクレーパーを混乱させる技術を加えました。

settings.pyでいくつかのフィールドを変更します。

CONCURRENT_REQUESTS = 1 
DOWNLOAD_DELAY = 2 
+0

ありがとうございます。 CONCURRENT_REQUESTSは何をするのですか?私はそれを50に設定すればどうなるの? –

+1

治療は並行して要求を処理します。これは、一度に指定された数の要求を送信することを意味します。 "1"に変更すると、最初の要求からの応答を受信した後、1つの要求のみを送信し、次の要求を送信します。 「50」に設定すると、scrapyは一度に50個の要求を送信します。 – bbanzzakji

0

ウェブサイトストアviewstateのようです。

これを回避するには、CONCURRENT_REQUESTS = 1を設定して、治療の並行性を取り除く必要があります。

そうしないと、ビューステートがどのように生成されたかをさらに調べる必要があります。IP境界になる可能性があります。これを回避するにはプロキシが必要です。

関連する問題