Requestsは、PythonでHTTPリクエストを簡単に行うためのライブラリです。HTTPプロトコルを介してウェブサービスと通信し、データの送受信を行うために広く使用されており、そのシンプルさと使いやすさが特徴です。Requestsの基本的な使い方と具体的な例を紹介します。
Requestsの基本機能
HTTPメソッドのサポート
GET、POST、PUT、DELETEなど、標準的なHTTPメソッドをサポートしています。
クエリパラメータの送信
URLパラメータを簡単に追加できます。
ヘッダーの設定
HTTPヘッダーを設定してリクエストを送信できます。
JSONデータの送信
JSON形式のデータを簡単に送信および受信できます。
セッションの管理
セッションオブジェクトを使用して、複数のリクエストに共通の設定を適用できます。
Requestsのインストール
まず、Requestsをインストールします。
pip install requests
例題1: 基本的なGETリクエスト
基本的なGETリクエストを使用して、ウェブページの内容を取得する方法を示します。
import requests
# URL
url = 'https://www.example.com'
# GETリクエストを送信
response = requests.get(url)
# ステータスコードを表示
print(f'Status code: {response.status_code}')
# レスポンスの内容を表示
print(response.text)
このコードでは、指定したURLに対してGETリクエストを送信し、ステータスコードとレスポンスの内容を表示しています。
例題2: クエリパラメータの送信
クエリパラメータを追加してGETリクエストを送信する方法を示します。
import requests
# URL
url = 'https://api.example.com/data'
# クエリパラメータ
params = {
'key1': 'value1',
'key2': 'value2'
}
# GETリクエストを送信
response = requests.get(url, params=params)
# ステータスコードを表示
print(f'Status code: {response.status_code}')
# レスポンスの内容を表示
print(response.json())
このコードでは、クエリパラメータを追加してGETリクエストを送信し、レスポンスをJSON形式で表示しています。
例題3: POSTリクエストでデータを送信
POSTリクエストを使用して、データをサーバーに送信する方法を示します。
import requests
# URL
url = 'https://api.example.com/submit'
# 送信するデータ
data = {
'name': 'John Doe',
'email': 'john.doe@example.com'
}
# POSTリクエストを送信
response = requests.post(url, data=data)
# ステータスコードを表示
print(f'Status code: {response.status_code}')
# レスポンスの内容を表示
print(response.json())
このコードでは、フォームデータをPOSTリクエストで送信し、レスポンスをJSON形式で表示しています。
例題4: ヘッダーの設定とJSONデータの送信
カスタムヘッダーを設定し、JSONデータをPOSTリクエストで送信する方法を示します。
import requests
# URL
url = 'https://api.example.com/submit'
# カスタムヘッダー
headers = {
'Authorization': 'Bearer YOUR_ACCESS_TOKEN',
'Content-Type': 'application/json'
}
# 送信するJSONデータ
json_data = {
'name': 'John Doe',
'email': 'john.doe@example.com'
}
# POSTリクエストを送信
response = requests.post(url, headers=headers, json=json_data)
# ステータスコードを表示
print(f'Status code: {response.status_code}')
# レスポンスの内容を表示
print(response.json())
このコードでは、カスタムヘッダーを設定し、JSON形式のデータをPOSTリクエストで送信しています。
例題5: セッションの管理
セッションを使用して、複数のリクエストに共通の設定を適用する方法を示します。
import requests
# セッションオブジェクトを作成
session = requests.Session()
# セッションに共通のヘッダーを設定
session.headers.update({
'Authorization': 'Bearer YOUR_ACCESS_TOKEN'
})
# 複数のリクエストを送信
response1 = session.get('https://api.example.com/data1')
response2 = session.get('https://api.example.com/data2')
# ステータスコードとレスポンスの内容を表示
print(f'Response 1 status code: {response1.status_code}')
print(response1.json())
print(f'Response 2 status code: {response2.status_code}')
print(response2.json())
このコードでは、セッションオブジェクトを使用して共通のヘッダーを設定し、複数のリクエストに対してその設定を適用しています。
結論
Requestsは、PythonでHTTPリクエストを簡単に行うための非常に便利なライブラリです。Requestsを使用することで、ウェブサービスとの通信が非常にシンプルかつ直感的になり、データ取得や送信が効率的に行えます。基本的なGETリクエストから、POSTリクエストでのデータ送信、セッションの管理まで、Requestsの理解と適用は、APIとの連携やデータ収集において非常に有用です。