StoryEdit 開発日誌

ウェブアプリ StoryEditを作ってましたが延期。普通のブログ。

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を使うことに。