2010-12-02 65 views

回答

3

按照urllib文件,它會提高IOError如果連接無法進行。

try: 
    urllib.urlopen(url) 
except IOError: 
    # exception handling goes here if you want it 
    pass 
else: 
    DoSomethingUseful() 

編輯:作爲unutbu指出,urllib2更加靈活。關於如何使用它,Python文檔有一個很好的tutorial

2
try: 
    urllib.urlopen("http://fgsfds.fgsfds") 
except IOError: 
    pass 
3

如果您使用的是Python 2.6或更高版本,則urllib2.urlopen的參數爲timeout。你可以使用這樣的:

import urllib2 
try: 
    response = urllib2.urlopen('http://google.com',timeout = 0.001) 
except urllib2.URLError as err: 
    print('got here') 
    # urllib2.URLError: <urlopen error timed out> 

timeout在幾秒鐘內進行測量。上面的超短期價值只是爲了證明它的工作原理。在現實生活中,當然你可能會想要將它設置爲更大的值。

如果URL不存在或網絡出現故障,urllib2也會引發urllib2.URLError異常。

+0

我認爲唯一正確的答案。 +1 – khachik 2010-12-02 21:11:34