多个scrapy-redis无法同时抓取

发布于 2022-09-07 03:47:48 字数 774 浏览 20 评论 0

同时开启两个scrapy任务,然后往redispush一个start_url
但是只有一个scrapy任务A在运行,当把A停止之后,B任务才会开始抓取。

原因貌似是因为scrapy-redis在运行过程中,在redis中并没有保存requests,只保存了dupefilter,只有ctrl+c停止后,才会在redis中保存requests

或者在往redis中push一个start_url,B任务才会开始抓取。
这是怎么回事?

clipboard.png

clipboard.png

版本:
python 3.6
Scrapy (1.5.0)
scrapy-redis (0.6.8)

settings.py

SCHEDULER = "scrapy_redis.scheduler.Scheduler"
DUPEFILTER_CLASS = "scrapy_redis.dupefilter.RFPDupeFilter"
SCHEDULER_PERSIST = True

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

深爱不及久伴 2022-09-14 03:47:48

原因找到了,是因为 生成next_url太慢,即往redis push之后,立马被pop了,才导致redis 没有 requests的序列化,然后导致其他scrapy实例无法读取request继而无法同时进行数据抓取。

战皆罪 2022-09-14 03:47:48

那么这个问题要怎么解决?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文