zoukankan      html  css  js  c++  java
  • Spider-scrapy断点续爬

    scrapy的每一个爬虫,暂停时可以记录暂停状态以及爬取了哪些url,重启时可以从暂停状态开始爬取过的URL不在爬取

    实现暂停与重启记录状态

    方法一:

    1、首先cd进入到scrapy项目里(当然你也可以通过编写脚本Python文件直接在pycharm中运行)

    2、在scrapy项目里创建保存记录信息的文件夹

    3、执行命令:

      scrapy crawl 爬虫名称 -s JOBDIR=保存记录信息的路径

      如:scrapy crawl xxx -s JOBDIR=xxx/xxx

      执行命令会启动指定爬虫,并且记录状态到指定目录

    爬虫已经启动,我们可以按键盘上的ctrl+c停止爬虫,停止后我们看一下记录文件夹,会多出3个文件,其中的requests.queue文件夹里的p0文件就是URL记录文件,这个文件存在就说明还有未完成的URL,当所有URL完成后会自动删除此文件

    当我们重新执行命令:scrapy crawl xxx -s JOBDIR=xxx/xxx  时爬虫会根据p0文件从停止的地方开始继续爬取。

    方法二:

    在settings.py文件里加入下面的代码: 

    JOBDIR='xxx.com'
    使用命令scrapy crawl xxxspider,就会自动生成一个xxx.com的目录,然后将工作列表放到这个文件夹里 

    以上这两个方法,有时候并不是非常有效,之前项目中用到这两种方法,遇到的问题也不少,比如说有时候会发现无法用ctri+终止,或者是再次启动的时候发现爬虫无法正常爬取,开始即结束,当你第二次输入启动命令启动时爬虫会覆盖掉原来的数据,重新开始,起不到很好的暂停重启的效果。当时推测这个问题出现的原因可能是爬取的数据较少引起的,但是后来发现并不是,也一直在找这个问题出现的原因。

  • 相关阅读:
    2011年上半年软考信息系统项目管理师顺利通过了。
    技术工程师之歌
    大家都很注重能力的时候,我却在努力提高学历
    新的开发团队配合模式,适合小型团队
    研发部的四套马车
    mysql给root开启远程访问权限,修改root密码
    js客户端判断文件大小限制上传
    metro 微博api开发,post请求
    VS2010在C#头文件添加文件注释的方法
    android ListView 常见问题 之 高度问题
  • 原文地址:https://www.cnblogs.com/Python-XiaCaiP/p/10268524.html
Copyright © 2011-2022 走看看