web-dev-qa-db-ja.com

Python urllib vs httplib?

誰かがいつhttplibを使用し、いつurllibを使用しますか?

違いは何ですか?

私はurllibがhttplibを使用する準備ができていると思う、私はhttpリクエストを行う必要があるアプリを作成することを計画しており、これまでのところhttplib.HTTPConnectionをpython私はそれをリクエストにも使用できるので、どちらの利点がありますか?

53
jahmax

urllib(特にurllib2)はデフォルトで多くのことを処理するか、適切なライブラリを持っています。たとえば、urllib2はリダイレクトを自動的にたどり、cookiejarを使用してログインスクリプトを処理できます。 httplibを使用している場合、これらはすべて自分でコーディングする必要があります。

45
Robus

urlliburllib2httplib、およびhttplib2について何か言いたいことがあります。

urllib*httplib*の主な違いは次のとおりです。

httplibとhttplib2はHTTP/HTTPsリクエストとレスポンスを直接処理し、独自のジョブを実行するためのスペースを増やします。

urllibおよびurllib2はhttplib上に構築され、より抽象的で強力ですが、一部のHTTP関連操作に関する指定されたニーズを満たさない場合があります。

httplibhttplib2については、両方ともHTTP client libraryであると思います。ただし、httplib2httplibよりもはるかに強力で、多くの機能を備えています。

urllibおよびurllib2に関しては、 このリンク からの引用:

urllibとurllib2は両方ともPythonモジュールであり、URLリクエストに関連する機能を提供しますが、異なる機能を提供します。2つの最も重要な違いを以下に示します。

  • urllib2はRequestオブジェクトを受け入れて、URL要求のヘッダーを設定できます。urllibはURLのみを受け入れます。つまり、ユーザーエージェント文字列などをマスカレードすることはできません。
  • urllibは、GETクエリ文字列の生成に使用されるurlencodeメソッドを提供します。urllib2にはそのような機能はありません。これは、urllibがurllib2とともに頻繁に使用される理由の1つです。

私の個人的なブログ Httplib Httplib2 Urllib Urllib2-what's the difference をお勧めします。

それが役に立てば幸い:-)

17
Lihang Li

urllib/urllib2はhttplibの上に構築されています。 httplibに直接書き込むよりも多くの機能を提供します。

ただし、httplibを使用すると、基礎となる接続をより細かく制御できます。

9
Corey Goldberg

Http/httpsのみを扱い、HTTP固有のものへのアクセスが必要な場合は、httplibを使用します。

他のすべての場合には、urllib2を使用します。

6
Matt Joiner

キャッシュ、キープアライブ、圧縮、認証などの高レベルのものが必要な場合は、try httplib2

5
optixx

物事をPy3に移行する(そして何らかの理由で素晴らしい requests モジュールを使用するようにリファクタリングできない、またはリファクタリングしていない)人にとって、これはバージョン間の良い移行です:

try:
    import http.client as httplib
except ImportError:
    import httplib

両方で動作しますPython=バージョンセット。

0
Cometsong