【Python】Webをもっと手軽に!Requestsライブラリ入門:インストールから簡単な使い方まで 💻
インストールからレスポンス処理まで!Python Requests徹底ガイド
「PythonでWebサイトの情報を取得したいけど、なんだか難しそう…」
「APIってよく聞くけど、どうやって使うの?」
こんにちは! Pythonを学び始めたばかりの方、あるいはWebとの連携に興味が出てきた方にとって、Requestsライブラリはまさに救世主のような存在です。このライブラリを使うと、驚くほど簡単にWebサイトの情報を取得したり、Web APIを操作したりできるようになります。
この記事では、そんな超人気ライブラリRequestsの基本的な使い方を、インストールから順を追って、サンプルコードを動かしながら分かりやすく解説していきます。
1. Requestsライブラリとは?
Requestsは、「人間のためのHTTP」を謳う、PythonでHTTP通信を行うためのシンプルかつエレガントなライブラリです。標準ライブラリのurllibよりも直感的で扱いやすく、多くのPythonプログラマーに愛用されています。
これを使えば、数行のコードでWebページの内容を取得したり、APIにデータを送信したりといったことが可能になります。
2. Requestsのインストール
まずは、RequestsライブラリをあなたのPython環境にインストールしましょう。
ターミナル(WindowsならコマンドプロンプトやPowerShell、macOSならターミナル.app)を開いて、以下のコマンドを実行してください。
pip install requests
これでインストールは完了です! 簡単ですね。
💡ちょっと待った!仮想環境は使ってる?
もしあなたがプロジェクトごとにPythonの環境を分けて管理できる「仮想環境(venvなど)」を使っているなら、その仮想環境を有効化してからpip install requestsを実行してくださいね。そうすることで、プロジェクトごとにライブラリをスッキリ管理できます。
3. Webページを取得してみよう (GETリクエスト)
一番基本的な使い方として、Webページの情報を取得してみましょう。
ここでは、例として架空のAPIテストサイトである https://jsonplaceholder.typicode.com/todos/1 から情報を取得してみます。
サンプルコード:
import requests
# 情報を取得したいURL
url = "https://jsonplaceholder.typicode.com/todos/1"
# GETリクエストを送信
response = requests.get(url)
# レスポンスの内容を表示
print(response.text)
解説:
import requestsでRequestsライブラリを読み込みます。url変数に、情報を取得したいWebページのURLを指定します。requests.get(url)で、指定したURLに対してGETリクエストを送信します。サーバーからの応答(レスポンス)がresponseオブジェクトに格納されます。response.textで、レスポンスの本文をテキスト形式で取得し、表示しています。
{
"userId": 1,
"id": 1,
"title": "delectus aut autem",
"completed": false
}
このように、指定したURLのコンテンツ(この場合はJSON形式のデータ)が取得できました!
4. レスポンスの中身を詳しく見てみよう
responseオブジェクトには、取得した本文以外にも様々な情報が含まれています。
4.1. ステータスコードの確認
HTTPステータスコードは、リクエストが成功したか、失敗したかなどの状態を示す3桁の数字です。
response.status_code で確認できます。
サンプルコード:
import requests
url = "https://jsonplaceholder.typicode.com/todos/1"
response = requests.get(url)
print(f"ステータスコード: {response.status_code}")
# 存在しない可能性のあるURL
url_not_found = "https://jsonplaceholder.typicode.com/todos/999999"
response_not_found = requests.get(url_not_found)
print(f"存在しないURLのステータスコード: {response_not_found.status_code}")
実行結果 (例):
ステータスコード: 200
存在しないURLのステータスコード: 404
- 200: リクエスト成功 (OK)
- 404: リソースが見つからない (Not Found)
ステータスコードを見ることで、リクエストが正しく処理されたかを知ることができます。
4.2. レスポンスヘッダーの確認
レスポンスヘッダーには、コンテンツの種類 (Content-Type) やサーバーの情報など、本文以外のメタデータが含まれています。
response.headers で辞書形式で取得できます。
サンプルコード:
import requests
url = "https://jsonplaceholder.typicode.com/todos/1"
response = requests.get(url)
print("レスポンスヘッダー:")
for key, value in response.headers.items():
print(f" {key}: {value}")
実行結果 (一部抜粋例):
レスポンスヘッダー:
Date: Thu, 22 May 2025 05:30:00 GMT
Content-Type: application/json; charset=utf-8
Content-Length: 83
Connection: keep-alive
... (その他多くのヘッダー情報)
Content-Typeを見ると、このレスポンスがJSON形式 (application/json) であることが分かりますね。
4.3. JSON形式のレスポンスを扱う
先ほどの例のように、APIからのレスポンスはJSON形式であることが多いです。
Requestsライブラリには、JSONレスポンスを簡単にPythonの辞書やリストに変換してくれるresponse.json()メソッドがあります。
サンプルコード:
import requests
url = "https://jsonplaceholder.typicode.com/todos/1"
response = requests.get(url)
if response.status_code == 200:
# JSONレスポンスをPythonの辞書に変換
data = response.json()
print("取得したデータ (辞書型):", data)
print(f"タイトル: {data['title']}")
print(f"ユーザーID: {data['userId']}")
else:
print(f"エラーが発生しました: {response.status_code}")
実行結果 (例):
取得したデータ (辞書型): {'userId': 1, 'id': 1, 'title': 'delectus aut autem', 'completed': false}
タイトル: delectus aut autem
ユーザーID: 1
response.text で取得した文字列を自分でパースする手間が省け、Pythonの辞書として直接データにアクセスできるので非常に便利です。
5. URLにパラメータを付けてリクエストする (クエリパラメータ)
WebサイトやAPIによっては、URLの末尾に ?キー1=値1&キー2=値2 のような形でパラメータを付けて情報を絞り込んだり、特定の動作を指示したりすることがあります。これをクエリパラメータと呼びます。
Requestsでは、params引数に辞書を渡すことで、簡単にクエリパラメータをURLに追加できます。
サンプルコード:
ここでは、https://httpbin.org/get という、送信した情報をそのまま返してくれるテスト用APIを使います。
import requests
url = "https://httpbin.org/get"
# 送信するパラメータ
my_params = {
"name": "Taro Yamada",
"age": 30
}
response = requests.get(url, params=my_params)
# 実際にリクエストされたURLも確認できる
print(f"リクエストURL: {response.url}")
# レスポンス内容 (JSON)
data = response.json()
print("サーバーが受け取ったパラメータ:")
print(data["args"])
実行結果 (例):
リクエストURL: https://httpbin.org/get?name=Taro+Yamada&age=30
サーバーが受け取ったパラメータ:
{'age': '30', 'name': 'Taro Yamada'}
response.url を見ると、辞書で渡したパラメータが適切にURLエンコードされて追加されているのが分かります。
data["args"] に、サーバーが受け取ったパラメータが格納されていますね。
まとめ:Requestsで広がるPythonの世界!
今回は、PythonのRequestsライブラリの基本的な使い方として、
- インストール方法
- GETリクエストによる情報取得 (
requests.get()) - レスポンスの確認 (ステータスコード、ヘッダー、本文テキスト)
- JSONレスポンスの扱い (
response.json()) - クエリパラメータの送信
などを解説しました。
Requestsライブラリは非常に多機能で、今日ご紹介した以外にもPOSTリクエスト(データの送信)、認証、セッション管理など、さまざまなことができます。
この記事をきっかけに、ぜひRequestsライブラリを使って、Web上の情報取得やAPI連携にチャレンジしてみてください。あなたのPythonライフがもっと楽しく、もっと便利になるはずです!

コメント
コメントを投稿