HTTP 用の Python リクエスト ライブラリの使用方法
requests
ライブラリは、HTTP リクエストの作成プロセスを簡素化する人気の Python モジュールです。リクエストとレスポンスの処理の複雑さを抽象化し、Web サービスや API とのやり取りを容易にします。この記事では、さまざまな種類の HTTP リクエストの送信方法やレスポンスの処理方法など、requests
ライブラリの基本的な使用方法について説明します。
リクエストライブラリのインストール
requests
ライブラリを使用する前に、インストールする必要があります。Python パッケージ マネージャーの pip
を使用してインストールできます。ターミナルで次のコマンドを実行します。
pip install requests
シンプルなGETリクエストの作成
最も基本的な HTTP リクエストは、サーバーからデータを取得する GET リクエストです。requests
ライブラリを使用して GET リクエストを行う方法は次のとおりです。
import requests
response = requests.get('https://api.github.com')
print(response.status_code)
print(response.json())
この例では、GitHub API に GET リクエストを送信し、HTTP ステータス コードと応答コンテンツを JSON 形式で出力します。
POSTリクエストの送信
POST リクエストは、フォームの送信などのデータをサーバーに送信するために使用されます。requests
ライブラリを使用して POST リクエストを送信する方法は次のとおりです。
import requests
data = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=data)
print(response.status_code)
print(response.json())
この例では、フォーム データを含む POST 要求を httpbin.org テスト サービスに送信し、応答のステータス コードとコンテンツを出力します。
クエリパラメータの処理
場合によっては、リクエストにクエリ パラメータを含める必要があります。 requests
ライブラリを使用すると、パラメータを辞書として渡すことができるため、これが簡単になります。
import requests
params = {'search': 'python', 'page': 1}
response = requests.get('https://httpbin.org/get', params=params)
print(response.status_code)
print(response.url)
この例では、GET リクエストにクエリ パラメータを含め、パラメータが含まれた最終 URL を出力します。
ヘッダーの操作
認証やコンテンツ タイプの指定などのために、リクエストにカスタム ヘッダーを含める必要がある場合があります。リクエストにヘッダーを追加する方法は次のとおりです。
import requests
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
response = requests.get('https://api.github.com/user', headers=headers)
print(response.status_code)
print(response.json())
この例では、GitHub API へのリクエストに認証ヘッダーを含め、ステータス コードと応答コンテンツを出力します。
タイムアウトと例外の処理
ネットワーク タイムアウトやその他の例外などの潜在的な問題を処理することは重要です。requests
ライブラリを使用すると、タイムアウトを指定して例外をキャッチできます。
import requests
from requests.exceptions import RequestException
try:
response = requests.get('https://httpbin.org/delay/5', timeout=3)
response.raise_for_status()
print(response.status_code)
print(response.text)
except RequestException as e:
print(f'An error occurred: {e}')
この例では、リクエストのタイムアウトを設定し、発生した例外をキャッチして、何か問題が発生した場合にエラー メッセージを出力します。
結論
requests
ライブラリは、Python で HTTP リクエストを行うための強力で使いやすいツールです。API からデータを取得する場合、フォームを送信する場合、カスタム ヘッダーを処理する場合など、requests
ライブラリを使用すると、わずか数行のコードでこれらのタスクを簡単に実行できます。この記事で説明する基本をマスターすれば、Python プロジェクトで Web サービスや API とやり取りできるようになります。