【问题标题】:Python - urllib2 timeoutPython - urllib2 超时
【发布时间】:2010-11-17 18:48:54
【问题描述】:

我得到的东西是我的代码的 sn-p

opener = urllib2.build_opener(redirect_handler.MyHTTPRedirectHandler())
opener.addheaders = [('Accept-encoding', 'gzip')]
fetch_timeout = 12
self.response = opener.open(url, timeout=fetch_timeout)

但是,它的代码在超时之前仍然等待 60~ 秒... 有什么线索吗?

【问题讨论】:

    标签: python urllib2


    【解决方案1】:

    猜测你可能需要设置套接字超时

    import socket
    
    default_timeout = 12
    
    socket.setdefaulttimeout(default_timeout)
    

    【讨论】:

    • +1 ,当你的答案进来时,我正在编辑我的答案。这适用于所有版本。
    • 似乎不想工作。执行 socket.setdefaulttimeout(12) 然后打印 socket.getdefaulttimeout() 说 None This is 2.6.1 on OSX Snow Leopard
    【解决方案2】:

    您使用的是哪个版本。它是在 2.6 中添加的

    方法也是

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

    你可以尝试提供吗

    self.response = opener.open(url, None, fetch_timeout)
    

    对所有其他人来说,您仍然可以使用套接字模块来设置套接字超时。

    【讨论】:

      【解决方案3】:

      【讨论】:

        猜你喜欢
        • 2015-02-04
        • 2011-02-12
        • 2012-12-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多