2010-12-02 12 views
1

Nokia N900を使用すると、サーバーがオフラインの場合にスキップする文をurllib.urlopenとしています。 (接続に失敗した場合は、次のコード行に進みます)。Python:urllibが失敗した接続をスキップする

これはPythonでどのように行うべきですか?接続できない場合

答えて

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は秒単位で測定できます。上記の超短値は、それが機能することを実証するためだけのものです。実生活では、もちろんそれをもっと大きな値に設定したいと思うでしょう。

urllib2は、URLが存在しない場合やネットワークがダウンしている場合にも、urllib2.URLError例外を発生させます。

+0

唯一正しい答えだと思います。 +1 – khachik

+0

urllibを使用する必要はありませんurllib2 –

関連する問題