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限制设定。

  • 相关阅读:
    Leetcode Spiral Matrix
    Leetcode Sqrt(x)
    Leetcode Pow(x,n)
    Leetcode Rotate Image
    Leetcode Multiply Strings
    Leetcode Length of Last Word
    Topcoder SRM 626 DIV2 SumOfPower
    Topcoder SRM 626 DIV2 FixedDiceGameDiv2
    Leetcode Largest Rectangle in Histogram
    Leetcode Set Matrix Zeroes
  • 原文地址:https://www.cnblogs.com/nuochengze/p/13152156.html
Copyright © 2011-2022 走看看