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
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。