3.1 モジュール requests
Pythonでは、ネットでの基本的な作業にrequestsライブラリが使えるよ。これを使うと、ネットワーク操作を簡単にして、HTTPリクエストを送信したり、最小限の手間でレスポンスを受け取ったりできるんだ。
このライブラリはPythonに元から入ってないから、使う前にパッケージマネージャーでインストールしないといけないよ。
ターミナルを開いて、こうしてみて:
pip install requests
ライブラリをインストールした後は、requestsモジュールを自分のプロジェクトで使えるよ。例えば、こんな感じで外部のIPアドレスを確認できるんだ:
import requests
response = requests.get("http://ip.jsontest.com/")
print(response.status_code) # ステータスコードを表示
print(response.json()) # JSONレスポンスを表示
ここではip.jsontest.comというサービスにリクエストを送信して、JSON形式のオブジェクトとしてIPアドレスを取得してるよ。リクエストとレスポンスが一行で完結するから凄く便利だよ。他の行ではサーバーからのレスポンスを出力してるだけだよ。
上の例で使ったget()メソッドについて、次にこのメソッドやrequestsオブジェクトの他のメソッドについて説明するね。
3.2 メソッド一覧
requestsオブジェクトには、あらゆるシチュエーションに対応するメソッドが備わってるんだ。厳密には、各HTTPリクエストタイプに一つずつメソッドがあるんだよ。
| メソッド | 説明 |
|---|---|
requests.get() |
サーバーからデータを取得するためにGETリクエストを送信するよ。 |
requests.post() |
サーバーにデータを送信するためにPOSTリクエストを送信するよ。 |
requests.put() |
サーバー上のデータを更新するためにPUTリクエストを送信するよ。 |
requests.delete() |
サーバー上のデータを削除するためにDELETEリクエストを送信するよ。 |
requests.head() |
レスポンスの本文なしでヘッダーを取得するためにHEADリクエストを送信するよ。 |
requests.options() |
サーバーが対応しているメソッドやパラメータを確認するためにOPTIONSリクエストを送信するよ。 |
requests.patch() |
サーバー上のデータを部分的に更新するためにPATCHリクエストを送信するよ。 |
requests.request() |
すべてのHTTPリクエストタイプを送信するための主要メソッドだよ。 |
以下では、最も基本的なものについて詳しく見ていくよ。
3.3 GETリクエストとPOSTリクエストの送信
GETリクエストは通常、URLだけで構成されるけど、追加のパラメータ文字列を含むこともあるよ。
1. シンプルなGETリクエストの送信
GETリクエストはサーバーからデータを取得するために使われるよ。必須のパラメータはリクエストを送るURLなんだ。
例:
import requests
response = requests.get('https://jsonplaceholder.typicode.com/posts')
print(response.status_code) # ステータスコードを表示
print(response.json()) # JSONレスポンスを表示
2. パラメータ付きGETリクエストの送信
また、URLにはkey=value&key2=value2&…の形式で追加のパラメータを含めることができるよ。
この場合、パラメータは辞書とparamsという変数を使って渡されるんだ:
import requests
params = {'userId': 1}
response = requests.get('https://jsonplaceholder.typicode.com/posts', params=params)
print(response.json())
3. POSTリクエストの送信
POSTリクエストはリクエストの本文にテキストやJSON、画像などを含めることができるんだ。
例:
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.post('https://jsonplaceholder.typicode.com/posts', json=data)
print(response.status_code)
print(response.json())
3.4 PUTリクエストとDELETEリクエストの送信
1. PUTリクエストの送信
PUTリクエストはサーバー上のデータを更新するために使われるんだ。
import requests
data = {
'title': 'foo',
'body': 'bar',
'userId': 1
}
response = requests.put('https://jsonplaceholder.typicode.com/posts/1', json=data)
print(response.status_code)
print(response.json())
2. DELETEリクエストの送信
DELETEリクエストはサーバー上のデータを削除するために使われるよ。
import requests
response = requests.delete('https://jsonplaceholder.typicode.com/posts/1')
print(response.status_code)
print(response.json())
GET、POST、PUT、DELETEリクエストの理解を深めるためには、ネットワークの仕組み、インターネット、ウェブ、HTTPについてのレクチャーを読むといいよ。これらは近い将来に学ぶことになるから楽しみにしてね。
GO TO FULL VERSION