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
來源:知乎
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。