urllib2でプロキシを参照しないようにする

urllib.urlopenはステータス404でも例外を発生してくれない。

urllib2.urlopenは404で例外を発生してくれるけれど、そのままだと環境変数のプロキシ設定を参照するようで、ちょっと困る場合があった。

というわけで、urllib2.urlopenでプロキシを設定|参照しないようにする方法を調べてみた。

Gist:227549

#!/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カテゴリ作ってみた。