urllib? urllib2? いやいや、requests?
久々に簡単なスクリプトを書いていたが、httpアクセスできるPythonのライブラリを探してみた。
はじめにurllibがひっかかる。直訳調で、かつクオリティが高いため、少し読むのがめんどくさいでおなじみのIBM Developersのリソースだ。
urllibの関数名で再度ひっかけてみる。すると、urllib2というライブラリがあるらしい、ってことだった。なるほど、urllib2のほうが新しそうだ。同じ関数名もあるので、import文だけを変更して動かしてみた。
すると、なんと、動かない。urllib2はurllibの上位互換かと思ったが、そうではないのか。と思い、urllibとurllib2の違いを調べることに。
すると、urllibでもurllib2でもない、requestsというライブラリがあることを知る。(StackOverflowで、その類の話題が質問されていたため)。
Requests: http://docs.python-requests.org/en/latest/index.html
ミーハーな私は、迷わずRequestsを使うことに。以下、メモ。
$ pip install requests $python Python 2.7.3 (default, Apr 10 2013, 06:20:15) [GCC 4.6.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import requests; >>> requests.get("http://www.google.com") <Response [200]> >>> res = requests.get("http://www.google.com") >>> res.text # show HTML
いやぁ、らくちん。
追記:
どうやら、urllib2は使いにくいからという理由で開発されたらしい。機能が限定されてる分、使い勝手はあがっているという、’スタイリッシュコーディング’向きのライブラリだ。
proxyの設定で、no-proxyを強制できなさそうなので、おとなしくurllib2を使うことに。