1. ホーム
  2. python

[解決済み] urllib、urllib2、urllib3、requestsモジュールの違いは何ですか?

2022-02-10 06:22:47

質問内容

Pythonでは、以下のような違いがあります。 urllib , urllib2 , urllib3 そして requests モジュールですか?なぜ3つもあるのですか?同じことをやっているように見えるのですが...。

解決方法は?

すでに言われていることではありますが、ぜひお勧めしたいのが requests Pythonのパッケージです。

Python以外の言語を使ったことがある人は、きっとこう思うでしょう。 urlliburllib2 は使いやすいし、コードも少ないし、能力も高い、以前はそう思っていたんです。 しかし requests パッケージは、信じられないほど便利で短いので、誰もが使うべきものです。

まず、完全にレストフルなAPIをサポートし、次のように簡単です。

import requests

resp = requests.get('http://www.mywebsite.com/user')
resp = requests.post('http://www.mywebsite.com/user')
resp = requests.put('http://www.mywebsite.com/user/put')
resp = requests.delete('http://www.mywebsite.com/user/delete')

GET/POSTに関わらず、パラメータをエンコードする必要はなく、単に辞書を引数にとればOKです。

userdata = {"firstname": "John", "lastname": "Doe", "password": "jdoe123"}
resp = requests.post('http://www.mywebsite.com/user', data=userdata)

さらに、JSONデコーダも内蔵しています(繰り返しますが、私は json.loads() というのも、これ以上書くことはないのですが、これは確かに便利です。)

resp.json()

また、レスポンスデータがテキストだけであれば、使用してください。

resp.text

これは氷山の一角に過ぎません。これはリクエストサイトからの機能一覧です。

  • 国際ドメインとURL
  • キープアライブ&コネクションプーリング
  • クッキーの永続性を利用したセッション
  • ブラウザ形式のSSL検証
  • ベーシック/ダイジェスト認証
  • エレガントキー/バリュークッキー
  • 自動解凍
  • ユニコード・レスポンス・ボディ
  • マルチパートファイルのアップロード
  • 接続タイムアウト
  • .netrc対応
  • リスト項目
  • Python 2.7, 3.6-3.9
  • スレッドセーフです。