scrapy请求队列:

Scrapy 如何获取 request 队列?

最近由于在数据量比较大的抓取遇到了一些问题,就想看看运行时的request队列中的url有什么,可是google的很久也没找到获取request队列的api,我查了这么久得出以下结论: 
1.spider运行时的request由schedule控制 
2.可以通过self.crawler.engine.schedule这种方式获取到schedule 

——————————————————————————————————————————

scrapy有两个队列:内存队列 和 磁盘队列. 最简单的办法,设置持久化吧(-s JOBDIR选项),可以通过磁盘队列查看request。

scrapy crawl somespider -s JOBDIR=myspider

运行scrapy后,会在myspider目录下生成 request.queue目录。

作者:junGle
链接:https://www.zhihu.com/question/26990647/answer/35853750
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

——————————————————————————————————————————

用 binux/pyspider · GitHub ,你能更清晰的看到抓取队列和动作

——————————————————————————————————————————

通过 middleware 或是 extension 好像都无法做到,只能hack代码了
scrapy/core/scheduler.py:enqueue_request
打印 self.mqs 和 self.dqs 即可

优雅的解决方案可以看看这个:darkrho/scrapy-redis · GitHub
SCHEDULER 是可以自定义的,这个 scrapy-redis 就可以实时查看 requests 队列内容

作者:IAMSK
链接:https://www.zhihu.com/question/26990647/answer/35560833
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

猜你喜欢

转载自blog.csdn.net/zf3419/article/details/84580329