【问题标题】:urllib2.urlopen - close faster when given a wrong linkurllib2.urlopen - 给出错误链接时关闭更快
【发布时间】:2011-11-11 17:38:13
【问题描述】:

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

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

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

【问题讨论】:

    标签: python urllib2


    【解决方案1】:

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

    【讨论】:

    • 不,如果链接错误,我希望它在 1 秒内停止。尝试将错误的链接放入您已链接到的代码中,您必须等待 20 秒才能收到错误消息。
    【解决方案2】:

    我不确定您为什么会遇到如此长时间的延迟。

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

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

    尝试使用requests和超时参数。

    【讨论】:

    • “您正在运行的确切代码和获取的域是什么?”
    • line1: url="jdoiajoisdzzzzzej.com" line2: response=urllib2.urlopen(url,timeout=1) , 在 Linux python 2.7.2+ 下
    • 我也这样做了,结果一样。我必须等待很长时间的错误。
    猜你喜欢
    • 2015-02-05
    • 2023-03-18
    • 2018-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-02
    • 1970-01-01
    相关资源
    最近更新 更多