限制urllib的getcode响应时间以避免程序冻结

0 投票
1 回答
533 浏览
提问于 2025-04-17 15:09

我写了一些代码,用来从一个RSS源获取信息,效果很好。不过,我发现这个源不太可靠,经常无法访问。因此,我添加了一个功能,用来检查网站是否正常,如果不正常,就等一分钟再试。

今天我注意到,程序有时会卡住,我得重启它才能继续工作。

我猜是它在获取网站的“200”状态时遇到了问题。

我想知道怎么设置一个“时间限制”,让它在尝试获取网站状态时,超过一定时间就跳过。

我用的是Python 2.7。

这是我写的代码:

try:
urllib.urlopen(sites).getcode() == 200
# more code here
except:
t = FindSites(sites)
print 'Failed to connect to ' + t

谢谢。

编辑:谢谢。试了下代码,现在应该可以正常工作了。

1 个回答

1

你可以使用 urllib2.urlopen,这个方法支持设置超时时间:

urllib2.urlopen(url[, data][, timeout])

撰写回答