问题描述
我正在从公司的 API 下载一些数据。根据其 API 文档,特定端点的请求限制为 60 / 1 分钟。在第 60 个请求之后,我不断收到 429 响应,即使在每个请求后等待 2 秒也是如此。 “X-RateLimit-Remaining”似乎只是从 60 倒计时到 0,但在某些情况下,它也会在某个随机时刻重置回 60。我在这里错过了什么?
import requests
import time
token = ''
header = {'Content-Type': 'application/json','Accept': 'application/json','Authorization': 'Bearer {}'.format(token)}
for i in range(70):
response = requests.get('',headers=header,timeout=10)
print(i)
print(response.status_code)
print(response.headers)
print('---------------')
time.sleep(2)
结果:
0
200
{'Date': 'Tue,01 Jun 2021 17:43:57 GMT','Server': 'Apache','Cache-Control': 'no-cache,private','X-
RateLimit-Limit': '60','X-RateLimit-Remaining': '58','Access-Control-Allow-Origin': '*','Content-
Encoding': 'gzip','vary': 'Accept-Encoding,Authorization','x-frame-options': 'SAMEORIGIN','Transfer-
Encoding': 'chunked','Content-Type': 'application/json'}
---------------
1
200
{'Date': 'Tue,01 Jun 2021 17:44:03 GMT','X-RateLimit-Remaining': '57','Content-Type': 'application/json'}
---------------
...
58
200
{'Date': 'Tue,01 Jun 2021 17:48:23 GMT','X-RateLimit-Remaining': '0','Content-Type': 'application/json'}
---------------
59
429
{'Date': 'Tue,01 Jun 2021 17:48:25 GMT','X-RateLimit-Limit': '60','X-RateLimit-
Remaining': '0','Retry-After': '86','X-RateLimit-Reset': '1622569791','content-encoding': 'gzip','vary': 'Accept-
Encoding,'transfer-encoding': 'chunked','Content-Type':
'application/json'}
---------------
60
429
{'Date': 'Tue,01 Jun 2021 17:48:27 GMT','Retry-After': '84','Content-Type':
'application/json'}
---------------
...
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)