【发布时间】:2019-09-28 18:13:46
【问题描述】:
有很多网站我必须对页面进行硬编码(爬取项目后增加页码),其中一些网站在最后一页之后返回到第 1 页。例如,如果一个网站有 25 页的项目,则向第 26 页发送请求会产生第一页的响应。
此时 Scrapy 的重复过滤器工作正常并且不会抓取项目,但爬虫会继续运行。当像这样触发重复过滤器时,有什么方法可以停止抓取过程?
我不想像这样硬编码页码,因为它会随着时间而改变。
if self.page < 25:
yield scrapy.Request(...)
【问题讨论】:
-
只需设置一个全局变量并让您的回调提前返回
-
@pguardiario 但是设置一个全局变量来跟踪什么?
-
跟踪什么时候应该停止。
标签: python web-scraping scrapy web-crawler