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

  • 增加并发

    • 默认的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.在配置文件中开启中间件

如何提升scrapy爬取数据的效率的更多相关文章

  1. 爬虫必知必会(6)_提升scrapy框架爬取数据的效率之配置篇

    如何提升scrapy爬取数据的效率:只需要将如下五个步骤配置在配置文件中即可 增加并发:默认scrapy开启的并发线程为32个,可以适当进行增加.在settings配置文件中修改CONCURRENT_ ...

  2. scrapy爬取数据的基本流程及url地址拼接

    说明:初学者,整理后方便能及时完善,冗余之处请多提建议,感谢!   了解内容: Scrapy :抓取数据的爬虫框架     异步与非阻塞的区别   异步:指的是整个过程,中间如果是非阻塞的,那就是异步 ...

  3. 将scrapy爬取数据通过django入到SQLite数据库

    1. 在django项目根目录位置创建scrapy项目,django_12是django项目,ABCkg是scrapy爬虫项目,app1是django的子应用 2.在Scrapy的settings.p ...

  4. python之scrapy爬取数据保存到mysql数据库

    1.创建工程 scrapy startproject tencent 2.创建项目 scrapy genspider mahuateng 3.既然保存到数据库,自然要安装pymsql pip inst ...

  5. 42.scrapy爬取数据入库mongodb

    scrapy爬虫采集数据存入mongodb采集效果如图: 1.首先开启服务切换到mongodb的bin目录下 命令:mongod --dbpath e:\data\db 另开黑窗口 命令:mongo. ...

  6. scrapy爬取数据进行数据库存储和本地存储

    今天记录下scrapy将数据存储到本地和数据库中,不是不会写,因为小编每次都写觉得都一样,所以记录下,以后直接用就可以了-^o^- 1.本地存储 设置pipel ines.py class Ak17P ...

  7. scrapy爬取数据保存csv、mysql、mongodb、json

    目录 前言 Items Pipelines 前言 用Scrapy进行数据的保存进行一个常用的方法进行解析 Items item 是我们保存数据的容器,其类似于 python 中的字典.使用 item ...

  8. scrapy爬取效率提升配置

    增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增加.在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100. 降低日志级别 ...

  9. 提高Scrapy爬取效率

    1.增加并发: 默认scrapy开启的并发线程为32个,可以适当进行增加.在settings配置文件中修改CONCURRENT_REQUESTS = 100值为100,并发设置成了为100. 2.降低 ...

随机推荐

  1. java:LeakFilling(面向对象)

    1.类的修饰符只能是:public,默认的.另外:final  ,abstract,(修饰符 (只有:public, 默认,)interface+类名 ). 2.在main函数中创建对象时,new哪个 ...

  2. LeetCode.937-重新排序日志数组(Reorder Log Files)

    这是悦乐书的第358次更新,第385篇原创 01 看题和准备 今天介绍的是LeetCode算法题中Easy级别的第220题(顺位题号是937).你有一系列日志.每个日志都是以空格分隔的单词串. 每个日 ...

  3. 去掉有序数组中的重复元素 c/c++

    去掉有序数组中的重复元素: int RemoveDuplates(int A[], int nCnt) { ; ; , j = ; i < nCnt && j < nCnt ...

  4. Akka系列(九):Akka分布式之Akka Remote

    前言.... Akka作为一个天生用于构建分布式应用的工具,当然提供了用于分布式组件即Akka Remote,那么我们就来看看如何用Akka Remote以及Akka Serialization来构建 ...

  5. 一、Kubernetes_V1.10集群部署-master-生成证书

    一.证书生成 1.下载cfssl mkdir -p /etc/kubernetes/sslwget https://pkg.cfssl.org/R1.2/cfssl_linux-amd64 wget ...

  6. Almost Sorted Array(o(nlgn)求解LIS)

    Almost Sorted Array Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 262144/262144 K (Java/Ot ...

  7. 利用ansible进行主机信息收集

    --- - hosts: myjob gather_facts: True vars: IP: "{{ ansible_default_ipv4['address'] }}" HO ...

  8. 拉勾网python开发要求爬虫

    #今日目标 **拉勾网python开发要求爬虫** 今天要爬取的是北京python开发的薪资水平,招聘要求,福利待遇以及公司的地理位置. 通过实践发现除了必须携带headers之外,拉勾网对ip访问频 ...

  9. sys模块&json模块&pickle模块

    sys模块&json模块&pickle模块 sys模块 一.导入方式 import sys 二.作用 与Python解释器交互 三.模块功能 3.1 经常使用 sys.path #返回 ...

  10. PHP常用代码片段

    /** * 高效判断远程文件是否存在 * @param $file * @return bool 存在返回 true 不存在或者其他原因返回false */ function remoteFileEx ...