コンテンツが変更されない場合は、現在のページの内容と前のページの内容を比較し、同じ場合はクロールを解除します。例えば
:
def parse(self, response):
product_urls = response.xpath("//a/@href").extract()
# check last page
if response.meta.get('prev_urls') == product_urls:
logging.info('reached the last page at: {}'.format(response.url))
return # reached the last page
# crawl products
for url in product_urls:
yield Request(url, self.parse_product)
# create next page url
next_page = response.meta.get('page', 0) + 1
next_url = re.sub('page=\d+', 'page={}'.format(next_page), response.url)
# now for the next page carry some data in meta
yield Request(next_url,
meta={'prev_urls': product_urls,
'page': next_page}
あなたは(あなたは、XPath経由でテキストを分析でき、ページタイトルや結果を示す見出し、すなわち、その変化何かを追跡し、それはもうしない場合に停止する必要がありますクエリは明らかに)。 – Jan
しかし、それを掻き集めてLinkExtractorが使用できないようにするURLにリンクするにはどうすればいいですか?これをCrawlSpiderに統合することは私の外にあります。 –