scrapy的暂停与重启

在爬取大型站点的时候,或遇到某些特殊情况的时候,往往需要赞同爬虫,并稍后再接着之前执行到的位置继续爬取,而不是每次出问题都从头开始。
scrapy的暂停与重启的设置很简单:
1.创建工作目录

  • 在当前项目下,创建工作目录(文件夹),命名如:crawls
  • 不同的spider是不能用同一个目录的。
    该工作目录是用来保存运行中的爬虫的必须数据,以保持作业状态的。

2.用以下命令启动爬虫

scrapy crawl somespider -s JOBDIR=crawls/somespider-1

上述命令中:
somespider: 启动的爬虫名
crawls/somespider-1:你创建的工作目录+爬虫序号

后面的somespider-1是用来区分不同的爬虫的,因为官方文档提到了:

要启用持久性支持,您只需通过JOBDIR设置定义作业目录。该目录将用于存储所有必需的数据以保持单个作业的状态(即蜘蛛运行)。重要的是要注意,此目录不能由不同的蜘蛛共享,甚至不能由同一个蜘蛛的不同作业/运行共享,因为它意味着用于存储单个作业的状态

3.暂停爬虫

以上两步,爬虫便可以能暂停的状态运行,当你需要暂停的时候,只需在运行窗口发送暂停命令即可:
ctrl + c
tips:

  • 只能按一次该命令,按两次的话爬虫会被强制退出。
  • 爬虫程序不会立刻暂停,它需要处理完已经发送出的请求完成善后工作,需要耐心等待一会儿。

4.暂停后的重启

输入与启动相同的命令即可:

scrapy crawl somespider -s JOBDIR=crawls/somespider-1

然后爬虫就会接着上一次暂停后的位置继续运行。

官方文档地址传送:https://docs.scrapy.org/en/latest/topics/jobs.html

完。

推荐阅读更多精彩内容