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

Dav*_*gac 12 python scrapy

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

小智 9

只是想分享该功能包含在最新的scrapy版本中,但参数名称已更改.你应该像这样使用它:

 scrapy crawl thespider --set JOBDIR=run1
Run Code Online (Sandbox Code Playgroud)

有关更多信息,请访问http://doc.scrapy.org/en/latest/topics/jobs.html#job-directory

  • @niko_gramphon,你知道这是否重申了dupefilter状态?如果我们写入csv文件并希望只使用相同的文件恢复,我们还需要添加服装代码吗?谢谢. (2认同)

nae*_*aeg 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 
Run Code Online (Sandbox Code Playgroud)

在目录中运行一个蜘蛛存储调度程序+ dupefilter状态:

scrapy crawl thespider --set SCHEDULER_DIR=run1 
Run Code Online (Sandbox Code Playgroud)

在抓取过程中,您可以点击^ C取消抓取并稍后恢复:

scrapy crawl thespider --set SCHEDULER_DIR=run1 
Run Code Online (Sandbox Code Playgroud)

SCHEDULER_DIR设置名称必须在最终版本之前更改,但想法是相同的 - 您传递一个目录来保持状态.