python urlopen 超时_在Python的urllib2 urlopen中检测超时错误

我对Python还是比较陌生,因此,如果这是一个明显的问题,我深表歉意.

我的问题是关于urllib2库,它是urlopen函数.目前,我正在使用它从另一台服务器(它们都在同一远程主机上)加载大量页面,但是该脚本有时会因超时错误而被终止(我认为这是来自大型请求).

有没有办法让脚本在超时后保持运行?我希望能够提取所有页面,所以我想要一个脚本,该脚本将一直尝试直到获取页面,然后继续前进.

顺便说一句,保持对服务器开放的连接会有帮助吗?

解决方法:

下次发生错误时,请记下错误消息.最后一行将告诉您异常的类型.例如,它可能是urllib2.HTTPError.一旦知道引发的异常类型,就可以在try … except块中捕获它.例如:

import urllib2

import time

for url in urls:

while True:

try:

sock=urllib2.urlopen(url)

except (urllib2.HTTPError, urllib2.URLError) as err:

# You may want to count how many times you reach here and

# do something smarter if you fail too many times.

# If a site is down, pestering it every 10 seconds may not

# be very fruitful or polite.

time.sleep(10)

else:

# Success

contents=sock.read()

# process contents

break # break out of the while loop

标签:urllib2,urlopen,python

来源: https://codeday.me/bug/20191209/2097146.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值