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アプリケーション開発が可能になります。