Python3,关于请求重试,这次requests库给安排的明明白白。

简介: Python3,关于请求重试,这次requests库给安排的明明白白。

1、引言


小屌丝鱼哥你看这是啥

小鱼:我瞅瞅

小屌丝:鱼哥你这眼神咋了还带上眼镜了?

小鱼:我眼神没问题我就怕你给我看的东西刺眼,所以戴上眼镜

小屌丝:我。...


42723b8ccb82418fab214d29958d1040.png


小鱼:我难道说的有错吗?

小屌丝:你… 好吧… 我不会跟你一般见识的,毕竟, 我刚刚冲了黑桃X…。

小鱼:这… 我看看,是什么东西。

小屌丝:你看啥?

小鱼:当然是,你让我看的.

小屌丝:哦 ~ 哦 ~

小鱼:别 哦,哦的,容易引起误会

小屌丝:嗯… 嗯…昂… 是的

小鱼:别说话了,不就是想设置自动重试吗, 我这就帮你搞定。

小屌丝:嗯, 嗯, 好的 。

小鱼:别说话了, 我这就去整。


a271bfe76fe5480895de668c70289d52.png

2、requests库

关于错误重试, 小鱼在之前的博文中分享过,就是tenacity,如果你不记得,那可以直接点击下面的链接,去回忆回忆。

Python3,它,会魔法吧,来自最强大的错误重试库。

俗话说:条条大路通罗马,今天搞点不一样的。即 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库为例,并没有说其他库写的没有此库标准的意思。

目录
相关文章
|
5月前
|
存储 人工智能 测试技术
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
本文介绍如何使用LangChain结合DeepSeek实现多轮对话,测开人员可借此自动生成测试用例,提升自动化测试效率。
1044 125
如何使用LangChain的Python库结合DeepSeek进行多轮次对话?
|
5月前
|
监控 数据可视化 数据挖掘
Python Rich库使用指南:打造更美观的命令行应用
Rich库是Python的终端美化利器,支持彩色文本、智能表格、动态进度条和语法高亮,大幅提升命令行应用的可视化效果与用户体验。
457 0
|
4月前
|
数据可视化 关系型数据库 MySQL
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
本文详解基于Python的电影TOP250数据可视化大屏开发全流程,涵盖爬虫、数据存储、分析及可视化。使用requests+BeautifulSoup爬取数据,pandas存入MySQL,pyecharts实现柱状图、饼图、词云图、散点图等多种图表,并通过Page组件拖拽布局组合成大屏,支持多种主题切换,附完整源码与视频讲解。
421 4
【可视化大屏】全流程讲解用python的pyecharts库实现拖拽可视化大屏的背后原理,简单粗暴!
|
4月前
|
传感器 运维 前端开发
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
本文解析异常(anomaly)与新颖性(novelty)检测的本质差异,结合distfit库演示基于概率密度拟合的单变量无监督异常检测方法,涵盖全局、上下文与集体离群值识别,助力构建高可解释性模型。
443 10
Python离群值检测实战:使用distfit库实现基于分布拟合的异常检测
|
6月前
|
运维 Linux 开发者
Linux系统中使用Python的ping3库进行网络连通性测试
以上步骤展示了如何利用 Python 的 `ping3` 库来检测网络连通性,并且提供了基本错误处理方法以确保程序能够优雅地处理各种意外情形。通过简洁明快、易读易懂、实操性强等特点使得该方法非常适合开发者或系统管理员快速集成至自动化工具链之内进行日常运维任务之需求满足。
419 18
|
5月前
|
数据采集 Web App开发 前端开发
处理动态Token:Python爬虫应对AJAX授权请求的策略
处理动态Token:Python爬虫应对AJAX授权请求的策略
|
5月前
|
数据采集 机器学习/深度学习 人工智能
Python:现代编程的首选语言
Python:现代编程的首选语言
540 102
|
5月前
|
数据采集 机器学习/深度学习 算法框架/工具
Python:现代编程的瑞士军刀
Python:现代编程的瑞士军刀
402 104
|
5月前
|
人工智能 自然语言处理 算法框架/工具
Python:现代编程的首选语言
Python:现代编程的首选语言
313 103
|
5月前
|
机器学习/深度学习 人工智能 数据挖掘
Python:现代编程的首选语言
Python:现代编程的首选语言
249 82

推荐镜像

更多