urllib.request.urlopen()出现的程序超时假死问题

文章讲述了作者遇到的一个Python爬虫在抓取网页时遇到的停滞问题,发现原因是urllib.request.urlopen()的超时设置。作者通过添加异常处理和设定请求重试策略,优化了代码,使其在请求两次无响应后自动放弃该URL,提高了爬虫的稳定性。

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

写了一个百度通用爬虫,需要对很多的url进行循环处理,获取url的html,程序逻辑没有问题,但是程序经常跑着跑着就停止不动,不报错,所以一句句加输出,最终发现原来是:

pagetext = urllib.request.urlopen(request,data=None,timeout=15).read()

停止都是在这句 查找资料得知,urlopen()有一个超时参数,当长时间获取不到响应时,则报错,所以结合python异常处理,更改代码如下:

由于url数量较多,在请求了两次无响应则舍弃。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值