Python の requests パッケージのチートシート

インストールとインポート

requests パッケージのインストール
$ pip install requests
requests パッケージのインポート
import requests

リクエスト

コード説明
res = requests.get(URL)
GET リクエスト
res = requests.get(URL, headers={"key": "val"})
ヘッダーの設定
res = requests.get(URL, params={"key": "val"})
クエリパラメータの設定
res = requests.get(URL, cookies={"key": "val"})
クッキーの設定
res = requests.get(URL, auth=("user", "pass"))
Basic 認証
res = requests.get(URL, auth=requests.auth.HTTPDigestAuth("user", "pass"))
Digest 認証
res = requests.post(URL, data={"key": "val"})
POST リクエストでペイロード送信(key=val というテキスト)
data = {"key": "value"}
res = requests.post(
    "https://example.com",
    headers={"Content-Type": "application/json"},
    data=json.dumps(data)
)
POST リクエストでペイロード送信(JSON 形式のテキスト)
session = requests.Session()
res = session.post(URL1, data=data)
res = session.get(URL2)
セッションを考慮したリクエスト(URL1 のレスポンスに Set-Cookie ヘッダーが含まれていたら、次の URL2 へのリクエストに自動で Cookie ヘッダーが付く)
  • テスト用には下記のアドレスを使うと便利です。どのようなデータが送信されたかを、JSON 形式のレスポンスとして返してくれます。
    • GET メソッド用: https://httpbin.org/get
    • POST メソッド用: https://httpbin.org/post

レスポンス

コード説明
res.status_codeステータスコード(例: 200
res.okステータスコードが 400 未満であれば True(クライアントエラー 4xx もサーバーエラー 5xx も発生していない)
res.headersレスポンスヘッダー(dictionary 形式)
res.contentコンテンツのバイトデータ (bytes)
res.textコンテンツのテキストデータ (str)
res.json()コンテンツのテキストを JSON フォーマットとみなして Python オブジェクトに変換
with open("file.txt", "wb") as f: f.write(res.content)コンテンツをファイルに保存(ダウンロード)

参考