Scrapy的暂停和重启及采坑记录

Scrapy的暂停和重启有两种方式:官方文档介绍、中文文档
一、命令行方式:

 scrapy crawl spider_name -s JOBDIR=crawls/spider_name-1;

两个spider_name即为爬虫名称;后面的JOBDIR即为保存爬虫状态和requests_queue的文件路径, 可以自定义;比如

scrapy crawl bd -s JOBDIR=crawls/001

运行完成之后按Ctrl+C一次发送暂停信号,此时爬虫中断,并会在项目目录下新建一个crawls目录

image.png

image.png

001目录下有requests.queue文件,里面的p0文件记录了没有请求完的url信息,当项目重启之后该文件被删除;requests.seen是保存了爬虫的请求队列,打开如图所示,应该记录了请求队列的指纹信息
image.png

另外的就是保存爬虫状态的一个文件了(spider.state)
二、第二种方式就是在settings文件增加

JOBDIR='spdier.com'

执行爬虫 scrapy crawl spider_name后,就会自动生成一个spider.com的目录

image.png

这里遇到的一个坑就是我试了好几次暂停和重启,因为二者命令都是一样的,当我暂停爬虫的时候再运行命令开启爬虫,爬虫直接结束了,一开始以为是数据量不够导致的;然后加分页,再试还是不行,无奈各种搜;直到我看到了这篇博客:https://www.cnblogs.com/Successful-people/p/10652278.html 果然是中科院院士
我才恍然大悟,原来我暂停用了两次Ctrl+C ,而这时是强制退出!暂停按一次就行!

你可能感兴趣的:(Scrapy的暂停和重启及采坑记录)