• 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+终止,或者是再次启动的时候发现爬虫无法正常爬取,开始即结束,当你第二次输入启动命令启动时爬虫会覆盖掉原来的数据,重新开始,起不到很好的暂停重启的效果。当时推测这个问题出现的原因可能是爬取的数据较少引起的,但是后来发现并不是,也一直在找这个问题出现的原因。

  • 相关阅读:
    Java 二分查找
    Java 快速排序法 冒泡排序法 选择排序法 插入排序法
    XAF-BI.Dashboard模块概述 web/win
    XAF-列表视图数据访问模式
    XAF-列表视图编辑模式
    XAF-UI元素概述
    如何为CriteriaOperator过滤对象转换为lambda表达式,即:linq to xpo的动态where语句
    XAF视频教程来啦,已出15课
    如何隐藏winform中报表设计器中的按钮
    ReportDesigner中实现保存,保存所有,注册ICommandHandler方式实现
  • 原文地址:https://www.cnblogs.com/Python-XiaCaiP/p/10268524.html
Copyright © 2020-2023  润新知