这个问题与Python的Requests模块有关。
我正在使用requests.get()并遇到一个问题,我超出了我正在联系的服务器允许我的请求的速率限制。我已经在每个request.get()之后设置了一个time.sleep()到一个大一个数量级的东西。代码是这样的:
for url in url_list:
success = False
response = requests.get(url)
while not success:
time.sleep(1/250)
if str(response) == "<Response [200]>":
time.sleep(1/250) # Wait Xs between API call
do_stuff(response.text)
success = True
else:
print(response)
print(response.headers)
time.sleep(3)
response = requests.get(url)
我在这里不断提高我的速率,这是300请求/秒,我应该每秒最多只发送125个请求。在响应到达之前,请求是否暂停脚本?我不确定。我如何确保不发送超过我的费率的请求?
答案 0 :(得分:11)
requests.get是一个阻止调用。它会等到响应到来,然后程序的其余部分才会执行。如果您希望能够做其他事情,您可能需要查看asyncio或多处理模块。