如何停止scraw CrawlSpider并在以后的位置恢复?

时间:2011-09-05 19:36:05

标签: python scrapy

我有一个Scrapy CrawlSpider,它有一个非常大的要抓取的网址列表。我希望能够阻止它,保存当前状态并在以后恢复它而不必重新开始。有没有办法在Scrapy框架内实现这一目标?

3 个答案:

答案 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