[原创]解决Python Request请求报错requests.exceptions.ProxyError - 大盘站

使用request发送get请求出现:requests.exceptions.ProxyError: HTTPSConnectionPool(host=‘api.dapan.cc’, port=443)报错:

报错信息截图:
在这里插入图片描述
打开网络和Internet,关闭使用代理服务器,重新运行程序即可!
在这里插入图片描述

原文链接:https://www.dapan.cc/article/2022/08/7841/

### 解决 Python `requests` 库中的 ConnectionError 错误 当使用 `requests` 库时遇到 `[WinError 10054] 远程主机强迫关闭了一个现有的连接` 的错误,这通常是由于远程服务器或中间设备(如防火墙)强制终止了已建立的连接[^1]。 为了处理这种情况并增强程序稳定性,可以采取以下几种策略: #### 增加请求间隔时间 通过引入适当的时间延迟来减少短时间内发送过多请求的可能性。这样不仅可以降低触发目标点防护机制的风险,还能有效缓解因过频访问而引发的问题。 ```python import time time.sleep(seconds) # seconds 是等待秒数 ``` #### 关闭响应对象 每次完成数据读取后立即释放资源,有助于避免长时间占用连接而导致的服务端主动断开。 ```python response = requests.get(url) data = response.content response.close() ``` #### 设定全局套接字超时期限 调整默认的阻塞操作超时时长,使得即使发生读取停滞也能及时跳出而非无限期挂起。 ```python import socket socket.setdefaulttimeout(timeout_seconds) # timeout_seconds 表示设定的超时秒数 ``` #### 使用异常捕获机制保障流程连续性 对于可能出现异常的情况做好充分预案,确保单次失败不会影响整体执行逻辑。 ```python try: response = requests.get(url, timeout=timeout_seconds) except (requests.ConnectionError, requests.Timeout) as e: print(f"Request failed due to {e}") else: data = response.text finally: try: response and response.close() except NameError: # 如果未定义 'response' 则跳过此步 pass ``` 上述措施综合运用能够显著提高基于 `requests` 实现的数据抓取任务的成功率与鲁棒性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值