[英]How to use `requests.Session` to rate limit requests to a given URL
我想確保對 URL 的連續請求在請求之間的給定最小延遲下受到限制。
我遇到過requests.Session
掛鈎事件( https://docs.python-requests.org/en/master/user/advanced/#event-hooks )。 有沒有辦法配置這些鈎子事件(或其他方法)以有效地限制連續請求?
我的一個限制是,這種行為需要作為requests.Session
的修改/參數來完成。Session object。
使用全局 state 的粗略方法。
def request_hook(r, *args, **kwargs):
global last_request_time
poll_latency = 0.5
now = time.time()
if now < poll_latency + last_request_time:
time.sleep(min(poll_latency, poll_latency + last_request_time > now))
last_request_time = time.time()
def get_session():
global last_request_time
last_request_time = time.time() - 100
session = requests.Session()
session.hooks['response'].append(request_hook)
return session
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.