【发布时间】:2019-11-14 15:07:24
【问题描述】:
我能够保存我的爬行状态,并且 Scrapy 从我切断它的地方成功继续。每次重新启动蜘蛛时,我都保持 start_urls 不变,即每次重新启动蜘蛛时提供的 start_urls 的顺序和列表都是不变的。但是我需要对我的 start_urls 进行随机洗牌,因为我有来自不同域以及来自同一个域的 URL,但是由于它们是有序的,因此爬网延迟显着降低了我的爬网速度。我的列表有千万个,我已经抓取了一百万个 URL。所以我不想危害任何东西或重新开始爬网。
我看到 requests.seen 包含看起来像是已访问 URL 的散列值。从 Scrapy 代码中,我确信它用于过滤重复项。但我不确定 spider.state 或 requests.queue 对保存状态或重新启动爬网有何帮助。
【问题讨论】:
-
我正在努力寻找同样的东西,仅 requests.seen 在我的情况下忽略了多余的抓取,如果您找到了解决方案,请您发布答案