xen*_*ato 0 python python-requests grequests
我有一个URL列表,我想使用Python的grequests模块为其做一个HTTP Get请求.
某些URL不会返回OK状态,在这种情况下,我想重试该URL.
我可以使用Queue存储所有尚未尝试过的URL,或者在之前的尝试中未返回200的URL,并继续分批发送请求.我正在寻找一个更清洁/更"Pythonic"的实现.
我之前使用过retrying模块进行重试,它非常整洁.我想知道是否有一些类似的,简洁的实现重试grequest发送的请求.
您可以将自己的请求会话传递给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):
...
Run Code Online (Sandbox Code Playgroud)
如果你想要流媒体,你可以把stream = True.
| 归档时间: |
|
| 查看次数: |
1244 次 |
| 最近记录: |