requests パッケージのインストール
オープンソースの requests パッケージ を使用すると、Python 3 標準の urllib.request
よりも簡単に HTTP リクエストを扱うことができます。
例えば、以下のような処理をシンプルなコードで扱うことができます。
- Basic 認証、ダイジェスト認証
- ファイルのアップロード
- クッキー
- SSL 検証
- エンコーディング形式の自動判別
- コンテンンツが圧縮されていた場合の自動展開
requests パッケージは、pip
コマンドで簡単にインストールできます。
$ pip install requests
requests モジュールによる HTTP GET リクエスト
requests.get
関数を使うと、HTTP GET リクエストでインターネット上のコンテンツをダウンロードすることができます。
requests.get
は、戻り値として requests.models.Response
オブジェクトを返します。
import requests
res = requests.get('http://google.com/')
type(res) #=> <class 'requests.models.Response'>
Response
オブジェクトから、ステータスコードや、取得したコンテンツの内容を取得することができます。
import requests
res = requests.get('http://google.com/')
print(res.status_code) #=> 200
print(res.status_code == requests.codes.ok) #=> True
print(res.ok) #=> True
content = res.content #=> コンテンツをバイトデータ (bytes) で取得
text = res.text #=> コンテンツをテキスト (str) で取得
Response#text
を使って Unicode のテキストデータを取得することができます。
ダウンロードされたコンテンツからの変換に使われるエンコーディング形式は、HTTP のヘッダ、あるいは HTML 内のヘッダから判断されます。
どちらのヘッダにも指定がない場合は、コンテンツ内の文字列からそれらしきエンコーディング形式が決定されます。
requests モジュールによる HTTP POST リクエスト
POST リクエストを送るには、requests.get
の代わりに requests.post
を使用するだけです。
data = {'key1': 'value1', 'key2': 'value2'}
res = requests.post('http://example.com/', data)
print(res.text)