タイムアウトの設定についてはPython 2.6以降urllib.urlopenerのオプション引数でサポートされるようになりました。後ほど書き直します。 urllib.URLopenerはすべてのエラーをIOErrorで返します。except文はひとつで済むのですが、DNSのエラー、タイムアウト、URLの不正形式からHTTPサーバにおけるNotFound、認証要求、リダイレクトまで全部一緒に扱われてしまいます。エラーの内容によって処理を振り分けたい場合、error valueを取って調べることになります。 e.errno e.strerror e.args ============== ========== ========================================= 'url error' '...' ('url error', '...') 'socket er