質問: urllib、urllib2、およびrequestsモジュールの違いは何ですか? pythonでは、urllib、urllib2、および requests moduleの違いは何ですか?なぜ3つありますか?彼らは同じことをしているようです...
回答: urllib2はいくつかの追加機能を提供します。つまり、urlopen()関数はヘッダーを指定することを可能にします(通常は過去にhttplibを使用しなければならなかったでしょう)。もっと重要なことに、urllib2はrequestクラスを提供しますこれにより、リクエストを実行するためのより宣言的なアプローチが可能になります。r = request(url='http://www.mysite.com') r.add_header('user-agent', 'awesome fetcher') r.add_data(urllib.urlencode({'foo': 'bar'}) response = urlopen(r) urlencode()はurllibにのみ存在し、urllib2には存在しません。urllib2でより高度なurlサポートを実装するためのハンドラもあります。簡単な答えは、レガシーコードを使用していないのであれば、おそらくurllib2のurlオープナーを使用したいと思うでしょうが、それでもまだいくつかのユーティリティ関数のためにurllibにインポートする必要があります。 ボーナス回答 google app engineでは、httplib、urllib、urllib2のいずれかを使用できますが、それらはすべてgoogleのurl fetch apiのラッパーです。つまり、ポート、プロトコル、および許可される応答の長さなど、同じ制限の影響を受けます。ただし、http urlの取得に予想されるとおりにライブラリのコアを使用できます。