urllib.urlopenはステータス404でも例外を発生してくれない。
urllib2.urlopenは404で例外を発生してくれるけれど、そのままだと環境変数のプロキシ設定を参照するようで、ちょっと困る場合があった。
というわけで、urllib2.urlopenでプロキシを設定|参照しないようにする方法を調べてみた。
#!/usr/bin/env python """Python urllib2 proxy usage sample """ import urllib2 #今回はプロキシ設定を空にしておく #proxies = {'http': 'http://www.example.com:3128/'} proxies = {} #プロキシハンドラーを作成して handler = urllib2.ProxyHandler(proxies) #プロキシハンドラーを指定してURL Openerを作成して opener = urllib2.build_opener(handler) #作成したURL Openerをインストールしてから urllib2.install_opener(opener) #普通にurlopenすると例外が発生してくれる try: u = urllib2.urlopen('http://www.example.com/404NotFound.html') print u.read() except IOError,error: print error
Pythonカテゴリ作ってみた。