【Python】requests获取网络响应的时候,遇到url超过最大重试次数的解决方法

news2024/9/24 15:24:27

我们在使用requests连接网址后,获取网络响应的时候,有时候可能会遇到这样的问题:
在这里插入图片描述
问题:

Maxretries exceeded with url: /tags-%E9%A1%B9%E7%9B%AE-5.html(Caused
by SSLError(SSLEOFError(8,‘EOFoccurred in violation of
protocol(ssl.c:1129)’)))

这是指,在使用 requests 库或其他 HTTP 客户端库时,尝试对一个 URL 进行请求时超出了最大重试次数,并且在重试过程中遇到了 SSL 协议错误。

错误的原理:

  1. requests 库允许用户,为发送的请求设置重试逻辑。如果请求连续失败达到设定的次数,就会抛出这个错误。

  2. SSLEOFError(8,‘EOF occurred in violation of protocol’) 是指, SSL/TLS 加密的 HTTPS 请求过程中发生了一个 EOF(文件结束)错误。在 SSL 握手过程中,连接意外地结束了,这违反了 SSL 协议。

解决办法:

这时候可以使用 requests 的 Session 对象,并设置 mount 方法来配置 HTTPAdapter,包括重试策略,例如:

import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry

session = requests.Session()

# 设置重试策略
retries = Retry(total=5, backoff_factor=1, status_forcelist=[502, 503, 504])
session.mount('http://', HTTPAdapter(max_retries=retries))

# 设置默认headers
session.headers.update({'User-Agent': 'my-app/0.0.1'})

# 发送请求
response = session.get('https://example.com')

# 打印状态码和响应内容
print(response.status_code)#状态码

print(response.text) #响应内容

# 会话结束
session.close()

Session 对象是一种会话对象,它允许你跨请求保持某些参数和Cookie。

Session 对象发送请求时返回的是 requests 的 Response 对象,这个对象封装了服务器响应的所有信息,如状态码、响应头、内容等。

Session 对象可以保持会话状态,这对于模拟登录状态非常有用,因为你可以保持身份验证Cookie。

同时,在session里,我们还能在遇到特定状态码或异常时,自动请求重试,例如

“retries = Retry(total=5, backoff_factor=1, status_forcelist=[502, 503, 504]) ”

这一列就是在遇到错误状态码时重新连接。

具体代表的意思是:

total: 表示最大重试次数,包括初次请求。在这个例子中,total=5 意味着如果初次请求失败,将总共尝试5次。

backoff_factor: 表示重试之间的延迟因子。这个因子将用于计算重试前的等待时间。
backoff_factor=1 意味着重试前的等待时间将是从1秒开始指数增长(如果使用默认的退避策略)。

status_forcelist: 这是一个状态码列表,也就是接收到这些状态码时,会触发重试的请求。
在这个例子中,status_forcelist=[502, 503, 504] 表示当响应的状态码是502(Bad Gateway)、503(Service Unavailable)或504(Gateway Timeout)时,将触发重试。
当然还有一些429,404,402等可能会出现的错误状态码也可以加进去~

一些其他的解决方法:

1.增加超时时间:如果网络不稳定,尝试增加请求的超时时间。

2.检查服务器:确认服务器端是否正常工作,没有遇到错误或配置问题。

3.更新客户端 SSL/TLS 配置:确保客户端使用正确的证书和协议版本。

  1. 检查本地网络连接:确保本地网络连接稳定,没有被防火墙或代理阻止。

  2. 一些不靠谱的建议:第二天重启电脑再连网的时候就没事了(又多了摸鱼的理由!哈哈哈哈)

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

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

相关文章

大模型层数过多影响

当层数过多时候,梯度是累乘关系,如100 最后可能超过f16精度 梯度爆炸 后面梯度和权重值特别大 梯度消失 后台梯度和权重趋近于0 梯度合理范围e-6 到 e3 优化方法 1、优化点 乘法改为加法 resnet lstm 2、归一 梯度归一,大于小于阈值…

防范 Active Directory 攻击

关注公众号网络研究观获取更多内容。 Active Directory (AD) 是组织 Windows 网络的核心,可默默协调用户访问、身份验证和安全性。 但您真的了解它的工作原理吗?本博客将揭开 AD 的层层面纱,揭示其核心组件以及它们如何实现集中控制。探索 …

【ARM CoreLink 系列 4.2 -- NIC-400 控制器详细介绍】

请阅读【ARM AMBA 总线 文章专栏导读】 文章目录 NIC-400 TopNIC-400 Terminology(术语介绍)AMBA Slave Interface BlockSwitchDefault SlaveInterface BlockGlobal Programmers ViewAMBA Master interface BlockNIC-400 GPV(Global Programmers View)NIC-400 SwitchNIC-400 …

为什么用代理IP访问不了网站?如何解决?

代理IP可以为用户在访问网站时提供更多的便利性和匿名性,但有时用户使用代理IP后可能会遇到无法访问目标网站的问题。这可能会导致用户无法完成所需的业务要求,给用户带来麻烦。使用代理IP时,您可能会因为各种原因而无法访问您的网站。下面小…

柏林噪声(Perlin Noise)

要获得看起来很酷的实心纹理,大多数人使用某种形式的Perlin噪声。Perlin噪声返回类似下图的噪声。 Perlin噪声的一个关键部分是它是可重复的:它接受一个3D点作为输入,并总是返回相同的随机数字。附近的点返回相似的数字。Perlin噪声的另一个重…

Spacedrive :开源跨平台文件管理器!!【送源码】

项目介绍 Spacedrive 是一款革命性的开源跨平台文件管理器,它采用先进的虚拟分布式文件系统 (VDFS) 技术,为你带来前所未有的文件管理体验。无论是云端服务还是离线硬盘,Spacedrive 都能将它们统一在一个易于使用的界面中,让你轻松…

超声波清洗机哪个牌子的好?推荐四款性价比高的超声波眼镜清洗机

眼镜是现代生活中的必需品,但很多人对如何正确清洁眼镜感到困扰。传统清洁方法可能会在清洗过程中损伤眼镜,比如用普通肥皂或清水清洗时容易划伤镜片。为了解决这个问题,家用眼镜超声波清洗机应运而生。然而,市场上品牌繁多&#…

亲测好用!2024年四大ai智能写作工具推荐!

在快节奏的工作生活中,我一直在寻找能够提升写作效率的工具。经过一番探索,我发现了四款AI智能写作工具。它们不仅极大地提升了我的写作速度,还保证了内容的质量。 笔灵AI写作 链接:https://ibiling.cn 作为一名自媒体人&#…

免费高清图片素材库,我推荐这8个~赶紧收藏

找高清图片素材就上这8 个网站,我强推。免费、付费、商用的素材都能找到,赶紧先收藏起来吧! 菜鸟图库 美女图片|手机壁纸|风景图片大全|高清图片素材下载网 - 菜鸟图库 网站主要为新手设计师提供免费素材,这些素材的质量都很高…

CSDN博文中的数学公式显示——LaTeX数学公式一般语法

$MarkDown支持,HTML5文本也是支持$定制的。 (笔记模板由python脚本于2024年08月07日 21:18:36创建,本篇笔记适合初通Python,熟悉六大基本数据(str字符串、int整型、float浮点型、list列表、tuple元组、set集合、dict字典)的coder翻阅) 【学习…

explorer.exe没有注册类

管理员身份进入cmd面板 输入sfc /scannow 进行扫描,会自动修复异常文件 验证100% 后,输入 start explorer.exe 进行验证 这个问题就解决了

【Week-G6】CycleGAN-风格迁移网络-pytorch

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制 本次学习内容为适用于风格迁移的CycleGAN网络 一、说明 本地文件目录: 程序修改的部分: 二、训练 等待训练完成…

相机标定——小孔成像、相机模型与坐标系

小孔成像 用一个带有小孔的板遮挡在墙体与物之间,墙体上就会形成物的倒影,我们把这样的现象叫小孔成像。 用一个带有小孔的板遮挡在墙体与物之间,墙体上就会形成物的倒影,我们把这样的现象叫小孔成像。前后移动中间的板&#xff…

聚贤国际商会成都分部盛大启航,助力中小企业共克时艰。

近日,聚贤国际商会成都分部在万众瞩目中正式成立,标志着聚贤国际在助力全球中小企业应对经济挑战、实现共同发展的征途上又迈出了坚实的一步。此次成都分部的设立,不仅是对聚贤国际全球布局的重要补充,更是对西南地区中小企业发展…

微信小程序开发【从0到1~入门篇完结】

目录 1.使用 npm 包1.1Vant Weapp1.2API Promise化传统回调函数风格Promise化优势注意事项实现API Promise化 2.全局数据共享3.分包4.案例--自定义tabBar 谢谢您能够坚持看到最后的一篇文章,读完这篇文章后,您已经学会了微信小程序开发的基础知识&#x…

GHOST重装系统分区丢失:成因解析与高效数据恢复指南

开篇:GHOST重装下的数据挑战 在计算机技术日新月异的今天,GHOST重装系统以其高效、便捷的特点,成为了众多用户解决系统问题、快速恢复系统环境的首选方案。然而,这一看似简单的操作背后,却隐藏着数据安全的巨大挑战&a…

ip地址冲突会影响整个网络吗

在数字化时代,网络已成为连接世界的桥梁,而IP地址则是这座桥梁上不可或缺的“门牌号”。然而,当这个独特的身份标识出现冲突时,整个网络的稳定运行将面临严峻挑战。IP地址冲突,这一看似微小的技术问题,实则…

【数据结构】算法的时间复杂度与空间复杂度

计算机考研408-数据结构笔记本之——第一章 绪论 1.2 算法和算法评价 1.2.2 算法效率的度量 算法效率的度量是通过时间复杂度和空间复杂度来描述的。 1.空间复杂度 算法的空间复杂度S(n)定义为该算法所需的存储空间,它是问题规模n的函数,记为 S(n) …

CCF编程能力等级认证GESP—C++7级—20240629

CCF编程能力等级认证GESP—C7级—20240629 单选题(每题 2 分,共 30 分)判断题(每题 2 分,共 20 分)编程题 (每题 25 分,共 50 分)黑白翻转区间乘积 单选题(每题 2 分,共 …

【鸿蒙开发基础学习】UIAbility 组件生命周期

UIAbility 组件生命周期 概述 当用户打开、切换和返回到对应应用时,应用中的 UIAbility 实例会在其生命周期的不同状态之间转换。UIAbility 类提供了一系列回调,通过这些回调可以知道当前 UIAbility 实例的某个状态发生改变,会经过 UIAbili…