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

news2024/12/24 21:51:21

requests库重试请求

  • 1、引言
  • 2、requests库
    • 2.1 安装
    • 2.2 代码实例
      • 2.2.1 重试次数设置
      • 2.2.2 重试条件设置
      • 2.2.3 超时时间设置
  • 3、总结

1、引言

小屌丝:鱼哥, 你看这是啥?
小鱼:我瞅瞅…
小屌丝:鱼哥,你这眼神咋了,还戴上眼镜了?
小鱼:我眼神没问题,我就怕你给我看的东西"刺眼",所以就戴上眼镜。
小屌丝:我屮艸芔茻…
在这里插入图片描述

小鱼:我难道说的有错吗?
小屌丝:你… 好吧… 我不会跟你一般见识的,毕竟, 我刚刚冲了黑桃X…。
小鱼:这… 我看看,是什么东西。
小屌丝:你看啥?
小鱼:当然是,你让我看的.
小屌丝:哦 ~ 哦 ~
小鱼:别 哦,哦的,容易引起误会
小屌丝:嗯… 嗯…昂… 是的
小鱼:别说话了,不就是想设置自动重试吗, 我这就帮你搞定。
小屌丝:嗯, 嗯, 好的 。
小鱼:别说话了, 我这就去整。
在这里插入图片描述

2、requests库

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

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

俗话说:条条大路通罗马今天搞点不一样的。即 requests库的重试功能

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

我是小鱼

  • CSDN 博客专家
  • 阿里云 专家博主
  • 51CTO博客专家
  • 51认证讲师等
  • 认证金牌面试官
  • 职场面试及培训规划师
  • 多个国内主流技术社区的认证专家博主
  • 多款主流产品(阿里云等)测评一、二等奖获得者

我是小鱼,关注我,带你学习更多更专业更前言的测试开发技术。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/686848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【计算机视觉】Fast Segment Anything 安装步骤和示例代码解读(含源代码)

文章目录 一、导读二、安装步骤2.1 将存储库克隆到本地2.2 创建 conda 环境2.3 安装软件包2.4 安装 CLIP2.5 下载权重文件2.6 开始使用2.6.1 Everything mode2.6.2 Text prompt2.6.3 Box prompt (xywh)2.6.4 Points prompt 三、示例代码 一、导读 论文地址: https:…

服务器配置与操作

服务器配置与操作 一、连接远程服务器 推荐用xshell 或者 finalshell 或者 winSCP 或者 FileZilla xshell下载地址:https://xshell.en.softonic.com/ 二、服务器配置 2.1 安装JDK 2.1 方法一:在线安装 yum list java* yum -y install java-1.8.0-ope…

【Django | 爬虫 】收集某吧评论集成舆情监控(附源码)

🤵‍♂️ 个人主页: 计算机魔术师 👨‍💻 作者简介:CSDN内容合伙人,全栈领域优质创作者。 文章目录 一、爬取帖子、二级评论二、构建数据表三、并入项目1. spider代码2. view视图代码3. 优化后台界面3. urls路由 四、定…

第二十三章Java二维数组详解

一、创建二维数组 在 Java 中二维数组被看作数组的数组,即二维数组为一个特殊的一维数组,其每个元素又是一个一维数组。Java 并不直接支持二维数组,但是允许定义数组元素是一维数组的一维数组,以达到同样的效果。声明二维数组的语…

编程规范-控制流程、错误和异常处理

前言: \textcolor{Green}{前言:} 前言: 💞这个专栏就专门来记录一下寒假参加的第五期字节跳动训练营 💞从这个专栏里面可以迅速获得Go的知识 今天的笔记是对编程规范的补充,对控制流程、错误和异常处理进行…

Ansys Zemax | 内窥镜物镜系统初始结构的优化提升(下)

系统性能提升 根据上篇的内窥镜系统分析,我们可以从四个方面对内窥镜物镜系统进行优化:元件间距、圆锥系数、MTF 值以及畸变值。点击优化-评价函数编辑器以设置具体的评价函数。(联系我们获取文章附件) 首先,用三个 CO…

NXP i.MX 8M Plus工业开发板硬件说明书--下册( 四核ARM Cortex-A53 + 单核ARM Cortex-M7,主频1.6GHz)

前 言 本文档主要介绍创龙科技TLIMX8MP-EVM评估板硬件接口资源以及设计注意事项等内容。 创龙科技TLIMX8MP-EVM是一款基于NXP i.MX 8M Plus的四核ARM Cortex-A53 单核ARM Cortex-M7异构多核处理器设计的高性能工业评估板,由核心板和评估底板组成。ARM Cortex-A5…

【AndroidUI设计】Bottom Navigation Activity中Fragment(碎片)的添加和下层导航图标的修改

文章目录 一、引言二、设计1、添加Fragment&#xff08;1&#xff09;确认需求&#xff08;2&#xff09;创建 <1> 方法一&#xff1a;借助工具快速生成 <2> 方法二&#xff1a;视图&#xff08;图层&#xff09;工具 <3> 方法三&#xff1a;手动…

知网G4《语数外学习》简介及投稿邮箱

知网G4教育专刊《语数外学习》简介及投稿邮箱 《语数外学习》全新改版&#xff0c;分别针对初中三个不同年级&#xff0c;每本仍然兼顾语数外三个学科。改版后的《语数外学习》将密切关注课改和中考改革的进程&#xff0c;与教材同步&#xff0c;在帮中学生朋友释疑疑惑、提高…

DOTA-PEG3-azide,1428146-79-5,DOTA三聚乙二醇叠氮,试剂相关研究说明

DOTA-PEG3-azide&#xff0c;DOTA PEG3 N3&#xff0c;DOTA三聚乙二醇叠氮产品结构式&#xff1a; 产品规格&#xff1a; 1.CAS号&#xff1a;1428146-79-5 2.分子式&#xff1a;C24H44N8O10 3.分子量&#xff1a;604.66 4.包装规格&#xff1a;白色固体 &#xff0c;1g、5g、1…

数据库性能测试

目录 前言&#xff1a; 1.引入数据库驱动包 2.添加数据库配置元件 3、JDBCRequest参数化 4、Variablesnames参数使用方法&#xff1a; 前言&#xff1a; 数据库性能测试是测试数据库系统在各种条件下的性能和稳定性的过程。它可以帮助测试人员识别数据库系统的性能瓶颈&a…

30余名「实在RPA·数字员工」在纳爱斯诞生,在618中服务千万消费者!

积水成渊&#xff0c;聚沙成塔&#xff01;谁在世界数字化大势中不断变革自己&#xff1f; 长期蝉联“中国品牌价值评价”日化行业首位&#xff0c;问鼎中国工业“奥斯卡”大奖的“大国品牌”纳爱斯——当仁不让&#xff01; 纳爱斯是日化行业领军企业&#xff0c;业务覆盖家…

SpringBoot整合MybatisPlus 自动生成controller、mapper、entity、service

首先创建SpringBoot项目 选择依赖 把application的后缀改为.yml&#xff0c;方便些。 pom.xml&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w…

一次完整的性能测试,测试人员需要做什么

目录 前言&#xff1a; 一、 规范性能测试实施流程的意义 二、 性能测试实施流程 1. 需求调研阶段 2. 测试准备阶段 3. 测试执行阶段 4. 测试报告阶段 5. 测试总结阶段 前言&#xff1a; 进行一次完整的性能测试需要经过多个阶段&#xff0c;包括需求分析、测试计划编…

OpenStack(3)--vxlan网络实战

目录 一、ML2配置文件 二、上传cirros镜像 三、创建vxlan10网络 四、创建实例/同vxlan通信测试 五、不同vxlan通信测试 5.1 新建vxlan11 5.2 新建路由/添加路由接口 5.3 不同vxlan通信测试 5.4 qemu-vnc报错 六、深度剖析vxlan 七、认识 Bridge br-ex、Bridge br-in…

「一本通 3.2 练习 6」汽车加油行驶

目录 第一步&#xff0c;二维转一维&#xff08;此步仅为方便&#xff0c;可以省略&#xff09; 第二步&#xff0c;建边&#xff08;啥都行&#xff0c;只要死不了&#xff09; 第三部&#xff0c;bfs&#xff08;你要dfs也行&#xff09; 第一步 第二步 第三步 可CA呢…

蓝桥杯专题-试题版-【01字符串】【2n皇后问题】【A+B问题】【Fibonacci数列】

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例点击跳转>软考全系列点击跳转>蓝桥系列 &#x1f449;关于作者 专注于Android/Unity和各种游…

ECS 简略版说明一:Entities and components

目录 Entities and components Worlds and EntityManagers Archetypes Chunks Queries Entity IDs IComponentData Managed IComponentData components DynamicBuffer components Aspects Allocator overview Allocator.Temp Allocator.TempJob Allocator.Persis…

MySQL性能测试及调优中的死锁处理方法

目录 前言&#xff1a; 1、死锁检测 2、死锁避免 3、死锁解决 前言&#xff1a; MySQL死锁是指多个会话同时请求相同资源时发生的一种资源争用现象&#xff0c;导致会话无法继续执行。死锁的发生会导致事务无法提交或者回滚&#xff0c;影响应用程序的正常运行。因此&#xff0…

consul简介与安装

一、Consul简介 Consul 是 HashiCorp 公司推出的开源产品&#xff0c;用于实现分布式系统的服务发现、服务隔离、服务配置&#xff0c;这些功能中的每一个都可以根据需要单独使用&#xff0c;也可以同时使用所有功能。Consul 官网目前主要推 Consul 在服务网格中的使用。 与其…