我有一个 URL 列表,我想使用 Python 对其执行 HTTP Get 请求grequests
module.
某些 URL 不会返回“正常”状态,在这种情况下,我想重试该 URL。
我可以使用一个队列来做到这一点,该队列存储所有尚未尝试过的 URL,或者在之前的尝试中未返回 200 的 URL,并继续批量发送请求。我正在寻找一个更干净/更“Pythonic”的实现。
我已经用过retrying
之前重试的模块非常简洁。我想知道是否有一些类似的、简洁的实现来重试 grequests 发送的请求。
您可以将自己的请求会话传递给 grequests 并在该会话上设置重试,即。
s = requests.Session()
retries = Retry(total=5, backoff_factor=0.2, status_forcelist=[500, 502, 503, 504], raise_on_redirect=True,
raise_on_status=True)
s.mount('http://', HTTPAdapter(max_retries=retries))
s.mount('https://', HTTPAdapter(max_retries=retries))
reqs = (grequests.get(url, session=s) for url in urls)
for resp in grequests.imap(reqs, stream=False):
...
如果你想要流式传输,你可以设置stream=True。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)