擅长:python、mysql、java
<p>首先,有一个timeout参数可以用来控制<code>urlopen</code>允许的时间。接下来,<code>urlopen</code>中的超时应该只抛出一个异常,更确切地说是一个<code>socket.timeout</code>。如果你不想让它中止程序,你只要抓住它:</p>
<pre><code>def urlparse(urlColumnElem, timeout=5): # allow 5 seconds by default
try:
conn = urllib.request.urlopen(urlColumnElem, timeout = timeout)
except urllib.error.HTTPError as e:
return (e.code)
except urllib.error.URLError as e:
return ('URL_Error')
except socket.timeout:
return ('Timeout')
else:
...
</code></pre>