zoukankan      html  css  js  c++  java
  • 提高scrapy的爬取效率

    增加并发:

    默认scrapy开启的线程数为32个,可以适当进行增加,在seeting配置文件中修改councurrent_requests=100

    降低日志等级:

    在运行scrapy运行时,会有大量日志输出,为了减少cpu的使用率,可将日志等级设置为log=errorlog=info

    禁用cookie:

    如果不是真的需要使用cookie,可以直接禁用cookie,提升爬取效率。cookie_enabled=false

    禁止重试:

    对失败的HTTP请求重新请求会减慢爬取速度,可以禁止重试。retry_enabled=false

    减少下载超时:

    对一个非常慢的链接进行爬取会很卡,减少下载超时,这样的链接会被放弃,提升爬取的效率。download_timeout=10 超时时间10S

    关于增量式爬虫

    是指对指定的页面进行数据爬取后,待页面数据更新后,能再次对页面进行爬取,且只会爬取新的数据,已经爬取的数据不会操作。

    重点在于不会爬取重复的数据,这就会用到数据指纹了。

    通常增量式爬取的内容表现为:

    1.爬取主页面链接中详情页面的数据,会对详情页面进行url去重判断。

    以redis为例:

    URL去重:电影详情信息

    向redis中写入一条新数据,其返回值为1,表示新数据可以存储。失败返回值为0,表示已存在相同数据。

    直接判断URL是否已存在,以键值对方式插入Redis,返回值若为1,对当前URL手动发送请求抓取数据,反之提示无新数据

    文本去重:新闻头条

    对文本去重,无法直接判断URL,都在同一个链接下,刷新就会有新数据。

    通常会选择文本标题和作者等动态文本拼接字符串,用hash sha256或者其他不可逆加密方式,获取文本唯一标识,

    存储到Redis中,如再次添加相同文本,则密文必然重复,返回值必定为0,不予发送请求即可。

  • 相关阅读:
    wxWidgets中wxDateTime与wxString的互操作
    wxWidgets文件操作(六)
    wxWidgets文件操作(三)wxFileDialog与wxTextCtrl
    终于完成词频统计小程序~
    我的第一个c#工程~
    Word frequency program的进展
    List Find和BinarySearch性能比较
    堆和栈
    Java工程师初学Android(四)(转)
    Java中static、this、super、final用法(转http://chytmaths.blog.163.com/blog/static/29482972200610125744333/)
  • 原文地址:https://www.cnblogs.com/wen-kang/p/10972806.html
Copyright © 2011-2022 走看看