如果超时则跳过URL

bdh*_*har 2 python sockets timeout exception-handling urllib2

我有一个URL列表

我使用以下内容检索其内容:

for url in url_list:
    req = urllib2.Request(url)
    resp = urllib2.urlopen(req, timeout=5)
    resp_page = resp.read()
    print resp_page
Run Code Online (Sandbox Code Playgroud)

超时时,程序崩溃.我只想阅读下一个URL,如果有的话socket.timeout: timed out.这该怎么做?

谢谢

Jir*_*Jir 7

虽然已经有答案,但我想指出,这URLlib2可能不是唯一的责任.

正如这里指出的那样(并且它似乎也基于问题描述),异常可能属于socket库.

在这种情况下只需添加另一个except:

import socket

try:
    resp = urllib2.urlopen(req, timeout=5)
except urllib2.URLError:
    print "Bad URL or timeout"
except socket.timeout:
    print "socket timeout"
Run Code Online (Sandbox Code Playgroud)

  • 没有解释的贬低是不是真的有用,是吗? (2认同)