這個問題是關於Python的請求模塊。requests.get()(Python,Requests模塊)會暫停腳本,直到響應到達?
我正在使用requests.get(),並遇到一個問題,我超出了我要聯繫的服務器請求的速率限制。我已經在每個requests.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請求。請求在響應到達之前是否暫停腳本?我不確定。我如何確保我不會發送比我的費率更多的請求?
如果是python2,你正在執行'time.sleep(0)'。試試'1./250'。 – beezz
您確定唯一的限制是每秒300次(即不是一些每日限制)嗎?您確定失敗的請求是由於達到該限制嗎? – BrenBarn
BrenBarn這正是我想要確定的。我唯一可能遇到的其他限制是一個變量「服務器有太多的請求,所以對你有所幫助」的限制。但在發生錯誤的情況下,我等待3秒鐘,這應該是充足的時間。 所以我不確定requests.get()會暫停腳本,直到收到響應或什麼。 – CHP