zoukankan      html  css  js  c++  java
  • 二十一:scrapy中设置下载延时与自动限速

    1、DOWNLOAD_DELAY

      在settings中设置  DOWNLOAD_DELAY=2  #延时2秒,不能动态改变,导致访问延时都差不多,也容易被发现

    2、RANDOMIZE_DOWNLOAD_DELAY

      在settings中设置  RANDOMIZE_DOWNLOAD_DELAY=True  # 启用后,当从相同的网站获取数据时,Scrapy将会等待一个随机的值,延迟时间为0.5到1.5之间的一个随机值乘以DOWNLOAD_DELAY

    3、通过自动限速扩展

      `

      from scrapy.contrib.throttle import AutoThrottle

      `

      自动限速扩展能够根据Scrapy服务器及爬取的网站的负载自动限制爬取速度。

      原理:在scrapy中,下载延迟是通过计算建立TCP连接到接收到HTTP包头(header)之间的时间来测量的。

      使用的限速算法根据规则调整下载延迟及并发数

      (1)spider永远以1并发请求数及AUTOTHROTTLE_START_DELAY中指定的下载延迟启动

      (2)当接收到回复时,下载延迟会调整到该回复的延迟与之间下载延迟之间的平均值

      通过配置settings中的字段来开启自动限速扩展

      (1)AUTOTHROTTLE_ENABLED:默认为False,设置为True可以启用该扩展

      (2)AUTOTHROTTLE_START_DELAY:初始下载延迟,单位为秒,默认为5.0

      (3)AUTOTHROTTLE_MAX_DELAY:设置在高延迟情况下的下载延迟,单位为秒,默认为60

      (4)AUTOTHROTTLE_DEBUG:用于启动Debug模式,默认为False

      (5)CONCURRENT_REQUESTS_PER_DOMAIN:对单个网站进行并发请求的最大值,默认为8

      (6)CONCURENT_REQUESTS_PER_IP:对单个IP进行并发请求的最大值,如果非0,则忽略CONCURRENT_REQUESTS_PER_DOMAIN设定,使用该IP限制设定。

  • 相关阅读:
    值得学习的东西
    【单调队列】转载
    dom基础3 — 简易版template.js
    js基础6 — 数组对象
    js基础6 — 字符串基本操作
    js基础5 — 将十六进制颜色转为rgba()
    js基础4 — 数组操作
    placeholer属性修改
    clipboard.js实现复制到剪切板
    JS 获取指定日期在当年的第几周
  • 原文地址:https://www.cnblogs.com/nuochengze/p/13152156.html
Copyright © 2011-2022 走看看