背景:
网络请求往往会有很多不受控制的意外情况发生,有时候我们要让它let it crash,有时候我们想多尝试几次。可以使用retry策略,实现多次请求。
示例:
from requests.packages.urllib3.util import Retry
from requests.adapters import HTTPAdapter
from requests import Session, exceptions
retry_tactics = Retry(total=5, status_forcelist=[500])
adapter = HTTPAdapter(max_retries=retry_tactics)
s = Session()
s.mount('https://', adapter)
params = {"addon": "firefox",
"addonversion": "4.1.0",
"q": "构建个人笔记网站"}
res = s.get('https://www.ecosia.org/search', params=params)
参考资料:
https://blog.ian.stapletoncordas.co/2014/12/retries-in-requests.html