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库为例,并没有说其他库写的没有此库标准的意思。

目录
相关文章
|
1月前
|
机器学习/深度学习 存储 数据挖掘
Python图像处理实用指南:PIL库的多样化应用
本文介绍Python中PIL库在图像处理中的多样化应用,涵盖裁剪、调整大小、旋转、模糊、锐化、亮度和对比度调整、翻转、压缩及添加滤镜等操作。通过具体代码示例,展示如何轻松实现这些功能,帮助读者掌握高效图像处理技术,适用于图片美化、数据分析及机器学习等领域。
70 20
|
2天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
23 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
26天前
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
101 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
2月前
|
XML JSON 数据库
Python的标准库
Python的标准库
185 77
|
2月前
|
存储 应用服务中间件 开发工具
对象存储OSS-Python设置代理访问请求
通过 Python SDK 配置 nginx 代理地址请求阿里云 OSS 存储桶服务。示例代码展示了如何使用 RAM 账号进行身份验证,并通过代理下载指定对象到本地文件。
113 15
|
2月前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
90 7
|
2月前
|
JSON 前端开发 JavaScript
Python中如何判断是否为AJAX请求
AJAX请求是Web开发中常见的异步数据交互方式,允许不重新加载页面即与服务器通信。在Python的Django和Flask框架中,判断AJAX请求可通过检查请求头中的`X-Requested-With`字段实现。Django提供`request.is_ajax()`方法,Flask则需手动检查该头部。本文详解这两种框架的实现方法,并附带代码示例,涵盖安全性、兼容性、调试及前端配合等内容,帮助开发者提升Web应用性能与用户体验。
54 0
|
4月前
|
Python
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
pip批量安装Python库 requirement.txt 离线环境无互联网环境下pip安装Python库
231 3
|
8月前
|
开发工具 git Python
安装和使用`libnum`是一个用于数字理论函数的Python库
【6月更文挑战第19天】`libnum`是Python的数字理论函数库。安装可通过`git clone`,进入目录后运行`python setup.py install`,也可用`pip install libnum`。示例:使用`int_to_hex`将十进制数42转换为十六进制字符串'2a'。注意,信息可能已过时,应查最新文档以确保准确性。如遇问题,参考GitHub仓库或寻求社区帮助。
148 1
|
7月前
|
Python
确保你已经安装了`python-barcode`库。如果没有,可以通过pip来安装:
确保你已经安装了`python-barcode`库。如果没有,可以通过pip来安装:

热门文章

最新文章