scrapy暂停和重启,及url去重原理

Posted lyq-biu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了scrapy暂停和重启,及url去重原理相关的知识,希望对你有一定的参考价值。

一.scrapy暂停与重启

  1.要暂停,就要保留一些中间信息,以便重启读取中间信息并从当前位置继续爬取,则需要一个目录存放中间信息:

    scrapy crawl spider_name -s JOBDIR=dir/001——spider_name是你要爬取得spider的py文件名,JOBDIR是命令参数,即代表存放位置参数,dir是中间信息要保存的目录,001新生成的文件夹名是保存的中间信息,重启则读取该文件信息。可以将JOBDIR 设置在setting中,或写在custom_settings中,在Pycharm中都会执行,但是在Pycharm中无法发送ctrl+c,即无法将进程放入后台并暂停。

  2.执行命令:scrapy crawl jobbole -s JOBDIR=jobs/001

    2.1有可能会报以下错误,这是因为未进入到项目目录(crawl会搜索scrapy.cfg文件):

技术分享图片

    2.2进入目录正常运行后,ctrl+c暂停进程:

     会在jobs下生成一个001文件夹生成如下图文件,request.seen是保存的已经访问了的url,spider.state是spider的状态信息,request.queue中有active.json和p0两个文件,p0是还需要继续做的request(跑完该文件就没有了)

 

技术分享图片

技术分享图片

  3.重启(也是执行scrapy crawl jobbole -s JOBDIR=jobs/001):

    会读取相关信息并继续执行,p0文件会减小,request.seen文件会增大(读取新的request,存入url),两次ctrl+c强制关掉,若需从新爬则可以指定新的文件夹,如jobs/002.

二.scrapy去重原理

  1.

 

 

 

 

以上是关于scrapy暂停和重启,及url去重原理的主要内容,如果未能解决你的问题,请参考以下文章

scrapy的url去重设置

scrapy去重与scrapy_redis去重与布隆过滤器

crapy 去重与 scrapy_redis 去重与 布隆过滤器

url去重 --布隆过滤器 bloom filter原理及python实现

scrapy的暂停与重启

.去重url,爬取和去重分离