【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を実行してくださいね。そうすることで、プロジェクトごとにライブラリをスッキリ管理できます。

venv仮想環境の構築はこちらで紹介しています。


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)

解説:

  1. import requestsRequestsライブラリを読み込みます。
  2. url変数に、情報を取得したいWebページのURLを指定します。
  3. requests.get(url) で、指定したURLに対してGETリクエストを送信します。サーバーからの応答(レスポンス)がresponseオブジェクトに格納されます。
  4. 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ライフがもっと楽しく、もっと便利になるはずです!

その他の投稿はこちら

コメント

このブログの人気の投稿

タイトルまとめ

【Pythonで学ぶ地理計算】mathライブラリで2点間の方位角を計算する基礎 🌍

これで迷わない!WindowsでPython環境構築する一番やさしい方法 #0