python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接。问题解决方案

当Python程序大量使用urlopen操作网站时,可能会遇到远程主机强迫关闭连接的问题。这通常是由于超时时间设置不当、未关闭请求或频繁请求造成的。解决方案包括设置socket超时时间、关闭请求、添加sleep间隔,以及在异常处理中增加重试机制。通过这样的方式,可以提高下载大量网页的稳定性和成功率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

python socket.error: [Errno 10054] 远程主机强迫关闭了一个现有的连接。问题解决方案:

前几天使用python读取网页。因为对一个网站大量的使用urlopen操作,所以会被那个网站认定为攻击行为。有时就不再允许下载。导致urlopen()后,request.read()一直卡死在那里。最后会抛出errno 10054.

这个错误是connection reset by peer.也就是传说的远端主机重置了此连接。原因可能是socket超时时间过长;也可能是request = urllib.request.urlopen(url)之后,没有进行request.close()操作;也可能是没有sleep几秒,导致网站认定这种行为是攻击。

具体解决方案如下面的代码:

[python] view plain copy
  1. import socket  
  2. import time  
  3. time
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

罗四强

打赏一下,飞升上仙。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值