いつ誰かがhttplibを使用し、いつurllibを使用しますか?
違いは何ですか?
urllibはhttplibを使用する準備ができていると思います。httpリクエストを作成する必要があるアプリを作成する予定です。これまでのところ、リクエストにはPythonでhttplib.HTTPConnectionのみを使用し、urllibについて読むと、リクエストにも使用できることがわかります。では、どちらのメリットは何ですか?
urllib(特にurllib2)は、デフォルトで多くのことを処理するか、そうするための適切なライブラリを持っています。たとえば、urllib2はリダイレクトを自動的に追跡し、cookiejarを使用してログインスクリプトを処理できます。これらはすべて、httplibを使用している場合に自分でコーディングする必要があるものです。
urllib
、、、urllib2
についてお話したいと思いhttplib
ますhttplib2
。
urllib*
との主な違いhttplib*
は次のとおりです。
httplibとhttplib2は、HTTP / HTTPSの要求と応答を直接処理し、独自の仕事をするためのより多くのスペースを提供します。
urllibとurllib2はhttplibに基づいて構築されており、より抽象的で強力ですが、一部のHTTP関連の操作に関する指定されたニーズを満たさない場合があります。
そして、のためhttplib
にhttplib2
、私はそれらが両方ともであると言うでしょうHTTP client library
。ただしhttplib2
、よりもはるかに強力で、はるかに多くの機能を備えていますhttplib
。
urllib
とについては、このリンクurllib2
から引用してください:
urllibとurllib2はどちらもPythonモジュールであり、URLリクエスト関連のものを実行しますが、異なる機能を提供します。それらの2つの最も重要な違いを以下に示します。
- urllib2はRequestオブジェクトを受け入れてURLリクエストのヘッダーを設定できますが、urllibはURLのみを受け入れます。つまり、ユーザーエージェントの文字列などを偽装することはできません。
- urllibは、GETクエリ文字列の生成に使用されるurlencodeメソッドを提供しますが、urllib2にはそのような関数はありません。これが、urllibがurllib2と一緒に使用されることが多い理由の1つです。
私の個人ブログHttplibHttplib2UrllibUrllib2-違いは何ですか。
それが役に立てば幸い:-)
urllib / urllib2は、httplibの上に構築されています。httplibに直接書き込むよりも多くの機能を提供します。
ただし、httplibを使用すると、基盤となる接続をより細かく制御できます。
http / httpsのみを扱っていて、HTTP固有のものにアクセスする必要がある場合は、httplibを使用してください。
他のすべての場合は、urllib2を使用します。
キャッシング、キープアライブ、圧縮、認証などの高レベルのものが必要な場合は、httplib2
物事をPy3に移行する人々にとって(そして何らかの理由で素晴らしいリクエストモジュールを使用するためにリファクタリングできないか、リファクタリングしていない)、これはバージョン間の良い移行です:
try:
import http.client as httplib
except ImportError:
import httplib
両方のPythonバージョンセットで動作します。