Python 3.x系の「urllib」でHTTPクライアント
Python 3.x系では、まぎらわしいライブラリが整理され、名前変更や統合が行われました。
そして、それは「urllib」と「urllib2」にも行われたようで、これらのライブラリは「urllib」として新しく生まれ変わりました。
正直、これまでの「urllib」と使い方も変わってしまったので、ここで記しておこうかと思います。
#!/usr/bin/env python # -*- coding: utf-8 -*- import urllib.request def open(url, proxy=None): opener = urllib.request.build_opener() if proxy: proxy_dict = {'http':proxy} proxy_handler = urllib.request.ProxyHandler(proxy_dict) opener.add_handler(proxy_handler) try: reader = opener.open(url) data = reader.read() except Exception as e: print('%s' % (str(e))) data = None return data if '__main__' == __name__: print(open('http://www.yahoo.co.jp/'))
後方互換性がなくなって、新たな仕様に変更されると、これまでの財産であるソースコードが使えなくなってしまうのは痛いですね。
旧バージョンのコードをメンテナンスして、新しいPython 3.x系でも使えるようにしておきましょう。