Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在scrapy中,如何限制对站点的请求而不是对代理服务器的请求?_Scrapy - Fatal编程技术网

在scrapy中,如何限制对站点的请求而不是对代理服务器的请求?

在scrapy中,如何限制对站点的请求而不是对代理服务器的请求?,scrapy,Scrapy,我正在使用代理并已将AUTO_AUTOTHROTTLE_ENABLED设置为True。我的印象是,scrapy限制了我正在爬行的站点,相反,它似乎限制了代理本身的请求。如何限制对站点而不是代理的请求 更新:我在发出每个请求时手动在meta中设置代理,而不是使用代理中间件。我认为这不可能仅从spider端实现。通过查看和,您可以看到所使用的延迟是发送请求和返回响应之间的时间差。在这段时间内发生的所有事情都会加在这个延迟上(包括代理延迟)。 为了进一步验证这一点,考虑以下步骤: AutoThrott

我正在使用代理并已将AUTO_AUTOTHROTTLE_ENABLED设置为True。我的印象是,scrapy限制了我正在爬行的站点,相反,它似乎限制了代理本身的请求。如何限制对站点而不是代理的请求


更新:我在发出每个请求时手动在meta中设置代理,而不是使用代理中间件。

我认为这不可能仅从spider端实现。通过查看和,您可以看到所使用的延迟是发送请求和返回响应之间的时间差。在这段时间内发生的所有事情都会加在这个延迟上(包括代理延迟)。 为了进一步验证这一点,考虑以下步骤:

  • AutoThrottle正在使用响应中的延迟信息,找到 在
    response.meta['download\u latency]
    中(请参阅)
  • 下载完成后,通过从当前时间中减去开始时间,在专用回调中设置延迟信息(“下载延迟”)(请参阅)
  • 实际上,开始时间是在下载代理被指示下载请求之前设置的,这意味着中间的所有内容都被添加到最终延迟中(请参阅)

  • 如果您想通过代理实际根据目标延迟进行调节,则必须由代理本身来处理。我建议使用一些托管代理池解决方案,如。

    我不认为仅从spider端就可以做到这一点。通过查看和,您可以看到所使用的延迟是发送请求和返回响应之间的时间差。在这段时间内发生的所有事情都会加在这个延迟上(包括代理延迟)。 为了进一步验证这一点,考虑以下步骤:

  • AutoThrottle正在使用响应中的延迟信息,找到 在
    response.meta['download\u latency]
    中(请参阅)
  • 下载完成后,通过从当前时间中减去开始时间,在专用回调中设置延迟信息(“下载延迟”)(请参阅)
  • 实际上,开始时间是在下载代理被指示下载请求之前设置的,这意味着中间的所有内容都被添加到最终延迟中(请参阅)

  • 如果您想通过代理实际根据目标延迟进行调节,则必须由代理本身来处理。我建议使用一些托管代理池解决方案,如。

    您所说的
    是什么意思?如何限制对站点的请求而不是代理?
    因此,问题/答案应该为您提供一种方法。虽然类似,但实际上并不相关。这是关于测量代理和目标之间的延迟,而这是关于为不同的代理设置不同的限制规则。您所说的
    如何限制对站点的请求而不是代理是什么意思?
    因此问题/答案应该为您提供一种方法。虽然类似,但实际上并不相关。这是关于测量代理和目标之间的延迟,而这是关于为不同的代理设置不同的限制规则。