[Python]requestsでgetリクエストとpostリクエストを使いこなす

PythonはWebスクレイピングやAPIの利用などに幅広く使われています。その中でもrequestsライブラリは、HTTPリクエストを簡単に行うことができるため、人気があります。この記事では、requestsライブラリを使ったgetリクエストとpostリクエストの基本的な使い方から、応用までを解説します。

Pythonのrequestsライブラリとは

requestsライブラリは、PythonでHTTPリクエストを行うためのライブラリです。Python標準のurllibライブラリよりも簡単に使えるため、人気があります。

getリクエストの基本的な使い方

getリクエストは、Webサーバーからデータを取得する際に使用されるリクエストです。requestsライブラリを使って、getリクエストを行う場合は以下のように書きます。

import requests
response = requests.get('http://example.com')
print(response.text)

上記のコードでは、requests.get()メソッドを使って、http://example.comに対してgetリクエストを送信しています。レスポンスの内容はresponse.textで取得することができます。

getリクエストの応用(パラメータの送信、ヘッダーの設定)

getリクエストでは、パラメータをURLに含めて送信することができます。また、ヘッダーを設定することもできます。以下のコードは、パラメータとヘッダーを設定してgetリクエストを送信する例です。

import requests
url = 'http://example.com'
params = {'key1': 'value1', 'key2': 'value2'}
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.get(url, params=params, headers=headers)
print(response.text)

上記のコードでは、getリクエストのURLにパラメータを含めることができます。paramsに辞書型でパラメータを設定し、requests.get()メソッドの引数にparams=paramsを指定します。また、ヘッダーを設定する場合は、headersに辞書型でヘッダーを設定し、requests.get()メソッドの引数にheaders=headersを指定します。

postリクエストの基本的な使い方

postリクエストは、Webサーバーにデータを送信する際に使用されるリクエストです。requestsライブラリを使って、postリクエストを行う場合は以下のように書きます。

import requests
url = 'http://example.com'
data = {'key1': 'value1', 'key2': 'value2'}
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.post(url, data=data, headers=headers)
print(response.text)

上記のコードでは、postリクエストのURLにデータを含めることができます。dataに辞書型でデータを設定し、requests.post()メソッドの引数にdata=dataを指定します。また、ヘッダーを設定する場合は、getリクエストと同様にheadersに辞書型でヘッダーを設定し、requests.post()メソッドの引数にheaders=headersを指定します。

postリクエストの応用(データの送信、ヘッダーの設定)

postリクエストでは、getリクエストと同様にデータを送信することができます。また、ヘッダーを設定することもできます。以下のコードは、データとヘッダーを設定してpostリクエストを送信する例です。

import requests
url = 'http://example.com'
data = {'key1': 'value1', 'key2': 'value2'}
headers = {'User-Agent': 'Mozilla/5.0'}
response = requests.post(url, json=data, headers=headers)
print(response.text)

上記のコードでは、postリクエストのデータをJSON形式で送信することができます。jsonに辞書型でデータを設定し、requests.post()メソッドの引数にjson=dataを指定します。また、ヘッダーを設定する場合は、getリクエストと同様にheadersに辞書型でヘッダーを設定し、requests.post()メソッドの引数にheaders=headersを指定します。

getリクエストとpostリクエストの使い分け

getリクエストとpostリクエストは、それぞれの目的に合わせて使い分ける必要があります。getリクエストは、データを取得する場合に使用し、postリクエストは、データを送信する場合に使用します。

まとめ

この記事では、Pythonのrequestsライブラリを使ったgetリクエストとpostリクエストの基本的な使い方から、応用までを解説しました。requestsライブラリは、HTTPリクエストを簡単に行うことができるため、WebスクレイピングやAPIの利用などに幅広く使われています。