<p>查看此以了解自动请求限制:
<a href="https://pypi.python.org/pypi/RequestsThrottler/0.2.2">https://pypi.python.org/pypi/RequestsThrottler/0.2.2</a></p>
<p>您可以在每个请求之间设置一个固定的延迟量,也可以在固定的秒数内设置要发送的请求数(这基本上是一样的):</p>
<p/>
<pre><code>import requests
from requests_throttler import BaseThrottler
request = requests.Request(method='GET', url='http://www.google.com')
reqs = [request for i in range(0, 5)] # An example list of requests
with BaseThrottler(name='base-throttler', delay=1.5) as bt:
throttled_requests = bt.multi_submit(reqs)
</code></pre>
<p/>
<p>函数<code>multi_submit</code>返回<code>ThrottledRequest</code>的列表(请参阅末尾的doc:link)。</p>
<p>然后您可以访问响应:</p>
<p/>
<pre><code>for tr in throttled_requests:
print tr.response
</code></pre>
<p/>
<p>或者,您也可以通过指定在固定时间内发送的请求数(例如,每60秒发送15个请求)来实现相同的目的:</p>
<p/>
<pre><code>import requests
from requests_throttler import BaseThrottler
request = requests.Request(method='GET', url='http://www.google.com')
reqs = [request for i in range(0, 5)] # An example list of requests
with BaseThrottler(name='base-throttler', reqs_over_time=(15, 60)) as bt:
throttled_requests = bt.multi_submit(reqs)
</code></pre>
<p/>
<p>两个解决方案都可以在不使用<code>with</code>语句的情况下实现:</p>
<p/>
<pre><code>import requests
from requests_throttler import BaseThrottler
request = requests.Request(method='GET', url='http://www.google.com')
reqs = [request for i in range(0, 5)] # An example list of requests
bt = BaseThrottler(name='base-throttler', delay=1.5)
bt.start()
throttled_requests = bt.multi_submit(reqs)
bt.shutdown()
</code></pre>
<p/>
<p>有关详细信息:<a href="http://pythonhosted.org/RequestsThrottler/index.html">http://pythonhosted.org/RequestsThrottler/index.html</a></p>