[Python] requestsの使い方

requestsモジュールは、PythonでHTTPリクエストを送信するためのライブラリです。HTTPプロトコルを使用するウェブサイトへのアクセスやAPIの呼び出しを簡単に行うことができます。requestsは、Python標準ライブラリのurllibやhttplibよりも使いやすく、便利な機能が多数用意されています。

目次

requestsモジュールのインストール方法

requestsモジュールは、pipコマンドを使ってインストールすることができます。まず、ターミナルやコマンドプロンプトを開き、以下のコマンドを実行してください。

pip install requests

requestsモジュールの使い方

requestsモジュールを使うには、まずモジュールをインポートします。

import requests

GETリクエストの送信

requestsを使って、ウェブサイトからデータを取得するには、GETリクエストを送信します。GETリクエストは、ブラウザでURLを入力することと同じように、ウェブサイトにアクセスする方法です。

import requests

response = requests.get('https://www.example.com/')
print(response.content)

上記のコードでは、requests.get()関数を使用して、https://www.example.com/ にGETリクエストを送信しています。サーバーからのレスポンスは、response変数に格納されます。content属性を使用して、レスポンスの本文を取得しています。

POSTリクエストの送信

requestsを使って、APIにデータを送信するには、POSTリクエストを送信します。POSTリクエストは、データを送信することができるので、ウェブサイトのフォームにデータを送信する場合にも使うことができます。

import requests

payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://httpbin.org/post', data=payload)
print(response.json())

上記のコードでは、requests.post()関数を使用して、https://httpbin.org/post にPOSTリクエストを送信しています。data引数を使用して、送信するデータを指定しています。レスポンスのJSONデータを表示するには、json()メソッドを使用します。

ヘッダーの指定

requestsを使って、HTTPリクエストにヘッダーを含めることができます。ヘッダーには、クッキー、ユーザーエージェント、言語設定などを含めることができます。

import requests

url = 'https://www.example.com/'
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.3'}
response = requests.get(url, headers=headers)
print(response.content)

上記のコードでは、requests.get()関数にheaders引数を渡して、ヘッダーを指定しています。User-Agentヘッダーを指定しています。

エラーハンドリング

requestsを使ってHTTPリクエストを送信する際には、エラーが発生することがあります。requestsは、エラーコードが返された場合には自動的に例外を発生させます。例外をキャッチすることで、エラー処理を行うことができます。

import requests

url = 'https://www.example.com/404'
try:
    response = requests.get(url)
    response.raise_for_status()
except requests.exceptions.HTTPError as err:
    print(err)
else:
    print(response.content)

上記のコードでは、requests.get()関数で404エラーが返された場合には、HTTPError例外が発生します。raise_for_status()メソッドを使用して、HTTPステータスコードが200番台であることを確認することができます。

文字化け対策

レスポンスヘッダーに文字コードの指定がない場合、文字化けが発生する可能性があります。この場合の対応については下記にまとめましたので、よかったら見てください。

まとめ

Pythonのrequestsモジュールを使うことで、HTTPリクエストを簡単に送信することができます。GETリクエスト、POSTリクエスト、ヘッダーの指定、エラーハンドリングなど、便利な機能が多数用意されています。requestsモジュールを使って、ウェブスクレイピングやAPI呼び出しなど、さまざまなプログラムを作成することができます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次