[Python]requestsでheader(get json post header取得)

Pythonのrequestsライブラリを使って、GETリクエストやPOSTリクエストを送信する際に、ヘッダーを指定する方法をご紹介します。また、JSON形式のデータの送受信におけるヘッダーの指定方法や、複数のヘッダーを指定する方法、ヘッダー情報の取得方法についても解説していきます。

requestsライブラリの基本的な使い方

requestsライブラリは、PythonでHTTPリクエストを送信するためのライブラリです。requestsを使用するには、まずrequestsライブラリをインストールする必要があります。

pip install requests

requestsライブラリをインストールしたら、以下のようにrequestsをインポートして使用することができます。

import requests

GETリクエストとヘッダーの指定方法

GETリクエストを送信する場合、requests.get()メソッドを使用します。GETリクエストにヘッダーを付ける場合は、headers引数を使用します。以下は、ヘッダーを指定してGETリクエストを送信する例です。

import requests
# ヘッダーを指定してGETリクエストを送信
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
    "Accept-Language": "ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7"
}
response = requests.get("https://www.example.com", headers=headers)
# レスポンスを表示
print(response.text)

上記の例では、User-AgentとAccept-Languageというヘッダーを指定してGETリクエストを送信しています。

POSTリクエストとヘッダーの指定方法

POSTリクエストを送信する場合、requests.post()メソッドを使用します。POSTリクエストにヘッダーを付ける場合は、headers引数を使用します。以下は、ヘッダーを指定してPOSTリクエストを送信する例です。

import requests
# ヘッダーを指定してPOSTリクエストを送信
headers = {
    "Content-Type": "application/json"
}
data = {
    "name": "John",
    "age": 30
}
response = requests.post("https://www.example.com", headers=headers, json=data)
# レスポンスを表示
print(response.text)

上記の例では、Content-Typeというヘッダーを指定してJSON形式のデータをPOSTリクエストで送信しています。

JSON形式のデータの送受信とヘッダーの指定方法

JSON形式のデータを送信する場合、requests.post()メソッドを使用し、json引数にデータを指定します。また、JSON形式のデータを受信する場合は、responseオブジェクトのjson()メソッドを使用してデータを取得します。以下は、JSON形式のデータを送信して受信する例です。

import requests
# JSON形式のデータを送信して受信
headers = {
    "Content-Type": "application/json"
}
data = {
    "name": "John",
    "age": 30
}
response = requests.post("https://www.example.com", headers=headers, json=data)
# レスポンスからJSON形式のデータを取得
json_data = response.json()
# JSONデータを表示
print(json_data)

上記の例では、JSON形式のデータを送信して、レスポンスからJSONデータを取得しています。

複数のヘッダーを指定する方法

複数のヘッダーを指定する場合は、headers引数に辞書型でヘッダーを指定します。以下は、複数のヘッダーを指定する例です。

import requests
# 複数のヘッダーを指定してGETリクエストを送信
headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36",
    "Accept-Language": "ja-JP,ja;q=0.9,en-US;q=0.8,en;q=0.7"
}
response = requests.get("https://www.example.com", headers=headers)
# レスポンスを表示
print(response.text)

上記の例では、User-AgentとAccept-Languageという複数のヘッダーを指定してGETリクエストを送信しています。

ヘッダー情報の取得方法

レスポンスオブジェクトのheaders属性を使うことで、ヘッダー情報を取得することができます。以下は、ヘッダー情報を取得する例です。

import requests
# ヘッダー情報を取得
response = requests.get("https://www.example.com")
headers = response.headers
# ヘッダー情報を表示
print(headers)

上記の例では、GETリクエストで取得したレスポンスのヘッダー情報を取得しています。

まとめ

requestsライブラリを使うことで、PythonからHTTPリクエストを送信することができます。GETリクエストやPOSTリクエストにヘッダーを指定する方法、JSON形式のデータの送受信におけるヘッダーの指定方法、複数のヘッダーを指定する方法、ヘッダー情報の取得方法について解説しました。

requestsライブラリを使いこなすことで、Pythonを使ったWebスクレイピングやAPI連携など、様々なWebアプリケーション開発が可能になります。