zoukankan      html  css  js  c++  java
  • 如何提升scrapy爬取数据的效率

    在配置文件中修改相关参数:

    • 增加并发
      • 默认的scrapy开启的并发线程为32个,可以适当的进行增加,再配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100。
    • 降低日志等级
      • 在scrapy运行的时候,会输出大量的日志信息,为了减少cpu的使用率,可以设置log输出信息为INFO或者ERROR.在配置文件中编写LOG_LEVEL = 'INFO'
    • 禁止cookie
      • 如果不是真的需要cookie,则在scrapy爬取数据的时候可以 禁止cookie从而减少CPU的使用率,提升爬虫效率,在配置文件中编写COOKIES_ENABLED= False
    • 禁止重试
      • 对失败的HTTP请求进行重新请求(重试),会减慢爬取速度。因此可以禁止重试,在配置文件中编写:RETRY_ENABLED = False
    • 减少下载超时
      • 如果对一个非常慢的链接进行爬取,减少下载超时可以让卡住的链接被快速放弃,从而提升爬取的效率。在配置文件中进行编写:DOWNLOAD_TIMEOUT = 10 超时时间为10s

    【补充】:

    请求传参的的应用场景:

      解析的数据不在同一个页面中

      Request(callback,meta={})

    下载中间件的用途:

      批量拦截请求(代理IP和UA)和响应(处理页面数据)

    如何在scrapy使用selenium
      1.在spider的init方法中实例化一个浏览器对象
      2.在spider的closed方法中关闭浏览器对象
      3.在下载中间件类的process_response方法中接收spider中的浏览器对象
      4.处理执行相关自动化操作(发起请求,获取页面数据)
      5.实例化一个新的响应对象(from scrapy.http import HtmlResponse),且将页面数据存储到该对象中
      6.返回新的响应对象
      7.在配置文件中开启中间件

  • 相关阅读:
    反射入门
    把数据库表的信息添加到list集合里面
    简单的事务分析及使用
    java-web与jdbc 的使用
    菜鸟入门bootstrap
    如何彻底的卸载mysql
    发生系统错误 1067,解决方案
    纯js的购物车案例
    idea里面怎么把自己项目添加maven
    js入门
  • 原文地址:https://www.cnblogs.com/wqzn/p/10477486.html
Copyright © 2011-2022 走看看