我必须获得几页的json,其中包含约130,000条条目。
请求相当简单,因为:
response = requests.request("GET", url, headers=headers, params=querystring)其中,querystring是一个访问令牌,而头相当简单。
我创建了一个while循环,基本上每个请求url都以
https://urlprovider.com/endpointname?pageSize=10000&rowStart=0rowStart通过pageSize递增,直到没有更多的页面为止。
我遇到的问题是,在5-8次请求成功后,我得到了以下响应:
{'errorCode': 'ERROR_XXX', 'code': 503, 'message': 'Maximum limit for unprocessed API requests have been reached. Please try again later.', 'success': False}从错误消息中,我得到在最后一个请求完成之前启动下一个请求。有谁知道我如何确保get请求在下一个请求开始之前已经完成(除了一些粗糙的东西,比如sleep()),或者是否错误可能在其他地方?
发布于 2019-06-20 20:52:41
我找到了我问题的答案。
起作用的是:
sleep(10),它使程序在处理下一个请求之前等待10秒。会话对象..。将使用urllib3 3的连接池。因此,如果您向同一台主机发出多个请求,则将重用底层TCP连接,这可能会显著提高性能(请参阅HTTP持久连接)。
这不仅解决了问题,而且与我的初始代码相比也提高了性能。
https://stackoverflow.com/questions/56693224
复制相似问题