1、引言
小屌丝鱼哥你看这是啥
小鱼:我瞅瞅
小屌丝:鱼哥你这眼神咋了还带上眼镜了?
小鱼:我眼神没问题我就怕你给我看的东西刺眼,所以戴上眼镜
小屌丝:我。...
小鱼:我难道说的有错吗?
小屌丝:你… 好吧… 我不会跟你一般见识的,毕竟, 我刚刚冲了黑桃X…。
小鱼:这… 我看看,是什么东西。
小屌丝:你看啥?
小鱼:当然是,你让我看的.
小屌丝:哦 ~ 哦 ~
小鱼:别 哦,哦的,容易引起误会
小屌丝:嗯… 嗯…昂… 是的
小鱼:别说话了,不就是想设置自动重试吗, 我这就帮你搞定。
小屌丝:嗯, 嗯, 好的 。
小鱼:别说话了, 我这就去整。
2、requests库
关于错误重试, 小鱼在之前的博文中分享过,就是tenacity,如果你不记得,那可以直接点击下面的链接,去回忆回忆。
俗话说:条条大路通罗马,今天搞点不一样的。即 requess库的重试功能。
2.1 安装
作为第三方库,我们第一步必须安装
pip install requests
其他方式安装:
《Python3,选择Python自动安装第三方库,从此跟pip说拜拜!!》
《Python3:我低调的只用一行代码,就导入Python所有库!!》
2.2 代码实例
2.2.1 重试次数设置
代码示例
# -*- coding:utf-8 -*- # @Time : 2023-06-26 # @Author : Carl_DJ ''' 实现功能: 使用requests库的Retry类,进行设置重试次数 ''' import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry import Retry # 设置重试次数 retry_times = 5 # 设置重试间隔时间 retry_backoff_factor = 2 session = requests.Session() retry = Retry(total=retry_times, backoff_factor=retry_backoff_factor) adapter = HTTPAdapter(max_retries=retry) session.mount('http://', adapter) session.mount('https://', adapter) #get请求 response = session.get('https://blog.csdn.net/wuyoudeyuer?type=blog')
2.2.2 重试条件设置
代码示例
# -*- coding:utf-8 -*- # @Time : 2023-06-26 # @Author : Carl_DJ ''' 实现功能: 使用requests库的Retry类,根据status_forcelist 和 method_whitelist 参数,进行设置重试条件 ''' import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry import Retry # 设置重试次数 retry_times = 5 # 设置重试间隔时间 retry_backoff_factor = 2 session = requests.Session() #根据状态进行重试 和 请求方式进行重试 retry = Retry(total=retry_times, backoff_factor=retry_backoff_factor, status_forcelist=[500, 502, 503, 504], method_whitelist=["HEAD", "GET", "OPTIONS"]) adapter = HTTPAdapter(max_retries=retry) session.mount('http://', adapter) session.mount('https://', adapter) #get请求 response = session.get('https://blog.csdn.net/wuyoudeyuer?type=blog')
2.2.3 超时时间设置
代码示例
# -*- coding:utf-8 -*- # @Time : 2023-06-26 # @Author : Carl_DJ ''' 实现功能: 使用requests库的Retry类,根据timeout参数,进行设置超时时间 ''' import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry import Retry # 设置重试次数 retry_times = 5 # 设置重试间隔时间 retry_backoff_factor = 2 # 设置超时时间 timeout = 10 session = requests.Session() #根据状态进行重试 和 请求方式进行重试 retry = Retry(total=retry_times, backoff_factor=retry_backoff_factor, status_forcelist=[500, 502, 503, 504], method_whitelist=["HEAD", "GET", "OPTIONS"]) adapter = HTTPAdapter(max_retries=retry) session.mount('http://', adapter) session.mount('https://', adapter) #get请求 response = session.get('https://blog.csdn.net/wuyoudeyuer?type=blog')
3、总结
看到这里,今天的分享就完事了。
今天主要针对requests库的 Retry类进行了介绍。
当然,不管是在公司培训,还是在其他课堂培训,我都不止一次的讲过,学习python,除了多练多敲,还需要看一些代码示例, 首推的是 requests库。
声明:
这里我只是以requests库为例,并没有说其他库写的没有此库标准的意思。