我有一个Scrapy CrawlSpider,它有一个非常大的要抓取的网址列表。我希望能够阻止它,保存当前状态并在以后恢复它而不必重新开始。有没有办法在Scrapy框架内实现这一目标?
答案 0 :(得分:9)
只想分享该功能包含在最新的scrapy版本中,但参数名称已更改。你应该像这样使用它:
scrapy crawl thespider --set JOBDIR=run1
有关详情,请访问http://doc.scrapy.org/en/latest/topics/jobs.html#job-directory
答案 1 :(得分:6)
几个月前,ML上有一个问题:http://groups.google.com/group/scrapy-users/browse_thread/thread/6a8df07daff723fc?pli=1
引用巴勃罗:
我们不仅在考虑它,还在努力。有 我的MQ中目前有两个工作补丁,用于添加此功能 任何人都想尝试早期预览(他们需要应用于 订购): http://hg.scrapy.org/users/pablo/mq/file/tip/scheduler_single_spider .... http://hg.scrapy.org/users/pablo/mq/file/tip/persistent_scheduler.patch 像以前一样运行蜘蛛(没有持久性):
scrapy crawl thespider
在目录中运行一个存储调度程序+ dupefilter状态的蜘蛛:
scrapy crawl thespider --set SCHEDULER_DIR=run1
在抓取过程中,您可以点击^ C取消抓取并恢复抓取 稍后用:
scrapy crawl thespider --set SCHEDULER_DIR=run1
SCHEDULER_DIR设置名称必须在最终之前更改 发布,但想法是相同的 - 你传递一个目录 在哪里坚持国家。
答案 2 :(得分:2)
Scrapy现在在他们的网站上有这方面的工作特征:
这是实际的命令:
scrapy crawl somespider -s JOBDIR=crawls/somespider-1