내용이 변경되지 않으면 현재 페이지의 내용을 이전 페이지와 비교할 수 있고 동일한 경우 크롤링을 중단하십시오.
이
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에 통합하는 것은 저를 넘어선 것입니다. –