urllib2.urlopen - 给出错误的链接时关闭得更快

时间:2011-11-11 17:38:14

标签: python urllib2

我希望我的程序尝试打开页面并在时间间隔 [0,t] 中获取数据,如果该时间到期,则应该关闭连接。
我正在使用 urllib2 来尝试完成任务。

t=1
url="http://example.com"
response=urllib2.urlopen(url,timeout=t)
html=response.read()

如果网址存在,这似乎有效。但是,如果你输入一些不存在的url,则错误停止程序需要很长时间。如果我将此程序用于某些网站,则用户需要等待错误消息太长时间。
如果花费的时间超过设定的时间,有没有办法停止执行 urlopen 命令?

2 个答案:

答案 0 :(得分:1)

如果您只是检查链接是否正确,请use a HEAD request

答案 1 :(得分:1)

我不确定你为何经历这么长时间的延误。

当我尝试向不存在的域发出请求时,我会在大约urllib2.URLError: <urlopen error [Errno 11004] getaddrinfo failed>秒内收到0.2次。

您正在运行的确切代码和您正在提取的域名是什么?

尝试使用requests和超时参数。