【便利】Pythonのrequestsとは?コード付きで徹底解説

※本サイトにはプロモーション・広告が含まれています。

(最終更新日:2023年7月)

✔当記事は以下のような方へ向けて書かれています

「Python Requestsとは何なのだろう?」
「Python Requestsの活用法について学びたい」
「Python Requestsを使ったコードの実例が参考にしたい」

✔当記事を通じて得られる知識

  • Python Requestsの基礎的な理解
  • Python Requestsの使い方やその多彩な機能
  • Python Requestsを用いた具体的なコード例

当記事では、Python Requestsの基本概念から、その応用まで豊富なコード例を交えて解説しています。

ぜひ最後までお読みください。

筆者プロフィール

筆者プロフィールアイコン

【現職】プロダクトマネージャー

【副業】ブログ(月間20万PV)/YouTube/Web・アプリ制作

「プログラミング × ライティング × 営業」の経験を活かし、30後半からのIT系職へシフト。現在はプロダクトマネージャーとして、さまざまな関係者の間に入り奮闘してます。当サイトでは、実際に手を動かせるWebアプリの開発を通じて、プログラミングはもちろん、IT職に必要な情報を提供していきます。

【当ブログで紹介しているサイト】

当サイトチュートリアルで作成したデモ版日報アプリ

Django × Reactで開発したツール系Webアプリ

✔人に見せても恥ずかしくないコードを書こう

「リーダブルコード」は、わかりやすく良いコードの定義を教えてくれる本です。

  • 見るからにきれいなコードの書き方
  • コードの分割方法
  • 変数や関数の命名規則

エンジニアのスタンダートとすべき基準を一から解説しています。

何回も読むのに値する本なので、ぜひ手にとって読んでみてください。

Python Requestsライブラリの基本

こちらでは、Python Requestsライブラリの基本についてお伝えします。

まずは基本を理解して、具体的な使い方を見ていきましょう。

  • Python Requests入門
  • urllib.requestとRequests: どちらが適しているか
  • Python Requestsの利用シーン

Python Requests入門

Python のRequestsは、Pythonの外部ライブラリで、HTTPリクエストを送信するためのツールです。

GETやPOSTなどのHTTPメソッドを使用してWebサーバーと通信するための簡単なインターフェイスを提供します。

また以下のような高度な機能もサポートしているライブラリです。

  • セッション
  • クッキーの管理
  • ヘッダーのカスタマイズ
  • SSL認証

urllib.requestとRequests: どちらが適しているか

Pythonで使える「urllib.request」も、HTTPリクエストを送信するためのモジュールです。

ただしRequestsの方が扱いやすいというメリットがあります。

Requestsはコードの簡潔性と可読性に優れ、高度な機能を簡単に利用できるのです。

一方urllib.requestは、Pythonの標準ライブラリであるため、追加のインストールが不要だというメリットがあります。

【悪用厳禁】Pythonのurllibライブラリの基本|実例付き
PythonでウェブスクレイピングやAPIの連携をおこないたいですか?当記事では、Pythonのurllibライブラリを用いた基本的な使い方や実践的な例を詳細に解説しています。ルールや倫理的な側面に注意しつつ、当記事記載の実例を元に、Pythonのスキルを磨きましょう。初心者の方は必見です。

Python Requestsの利用シーン

PythonのRequestsは、以下のような場面で使えます。

  • APIからデータを取得
  • ウェブスクレイピングをおこなう
  • 自動化スクリプトの中で、外部サービスとの連携する

簡単なコードで強力なHTTPリクエストを行えるため、初心者から経験豊富な開発者まで幅広く利用されています。

以下の記事は、Requestsで、APIへアクセスする方法を詳しく解説しているものです。

PythonでAPIを使いこなす|リクエストからAPI構築まで
PythonでAPIを使いこなしたいですか?当記事では、筆者が自作した無料のAPIをつかって、リクエスト・レスポンスを試してみたり、実際に構築した方法を解説しています。実際のコード付きなので、初心者の方は必見です。

簡単なRequestsモジュールの活用

Requestsモジュールの基本的な活用法について詳しく説明します。

手を動かしながら使ってみましょう。

  • Requestsモジュールのインストールプロセス
  • Requestsを使ってみよう: 基本パターン
  • 初めてのGETリクエスト: 出発点
  • WebAPIとのインタラクション: Requestsのパワー

Requestsモジュールのインストールプロセス

Requestsライブラリを使用するためには、まずそのモジュールをインストールする必要があります。

外部ライブラリなので、標準では備わっていないからです。

ターミナルやコマンドプロンプトで以下を実行しましょう。

pip install requests

Pythonのパッケージ管理ツールであるpipを使い、システムへインストールが可能です。

Requestsを使ってみよう: 基本パターン

Python Requestsを使ってHTTPリクエストを送信する基本的なパターンは以下の通りです。

まずはGETリクエストの例を見てみましょう。

import requests

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

このコードは、https://www.example.comにGETリクエストを送信し、HTTPステータスコードとレスポンスの本文を表示します。

GETリクエストとは、特定のURL等にアクセスし、データを取得するためのメソッド。

HP上のテキストや画像など、GETメソッドにより取得できます。

初めてのGETリクエスト: 出発点

まずは、requests.get関数にURLを引数として渡します

その結果を変数に保存し、それを用いてレスポンス内容を取得します。

import requests

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

このコードは、指定されたURLからのレスポンスをバイト形式で表示します。

WebAPIとのインタラクション: Requestsのパワー

Python RequestsはWebAPIとのインタラクションに強力なツールとなります。

例えば、JSONレスポンスを直接扱うことができます。

import requests

response = requests.get('https://api.example.com/data')
data = response.json()

print(data)

WebAPIからのJSONデータを、Pythonの辞書に変換しています。

APIから得られたデータをプログラム内で直接扱えるようになるのです。

PythonでAPIを使いこなす|リクエストからAPI構築まで
PythonでAPIを使いこなしたいですか?当記事では、筆者が自作した無料のAPIをつかって、リクエスト・レスポンスを試してみたり、実際に構築した方法を解説しています。実際のコード付きなので、初心者の方は必見です。

Requestsモジュールの詳細: より深く学ぶ

こちらでは、Requestsモジュールの詳細についてより深く探ります。

使いこなすためには、必須といえる知識です。

  • requests.getの深掘り
  • ステータスコードの取得方法
  • ステータスコード一覧
  • エンコーディングの知識と取得手順
  • レスポンスヘッダーの取得と解析

requests.getの深掘り

requests.getはRequestsライブラリで最も頻繁に使用される関数のひとつです。

指定されたURLに対してGETリクエストを送信し、その結果を取得できます。

さらに、多数のパラメータを使いこなせば、各リクエストをより具体的にカスタマイズ可能です。

例えば、次のコードではパラメータをURLに追加しています。

import requests

payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.get('https://www.example.com', params=payload)

print(response.url)

GETリクエストの際にクエリパラメータをURLに追加。

その結果のURLは ‘https://www.example.com?key1=value1&key2=value2’ となります。

ステータスコードの取得方法

HTTPリクエストの結果は、ステータスコードとして表現されます。

ステータスコードは、リクエストが成功したか、あるいは何らかのエラーが発生したかを知らせるためのものです。

Requestsライブラリでは、ステータスコードはResponseオブジェクトのstatus_code属性からアクセスしましょう。

以下に例を示します。

import requests

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

このコードは、https://www.example.comへのGETリクエストのステータスコードを表示します。

ステータスコード一覧

ステータスコードは、HTTPリクエストの結果を示す数字のことです。

以下に一部のステータスコードを示します。

ステータスコードステータスコード名説明
200OKリクエストが成功したことを示すrequests.get(url).status_code == 200
301Moved Permanentlyリクエストしたリソースが移動されたことを示すrequests.get(url).status_code == 301
404Not Foundリクエストしたリソースが見つからなかったことを示すrequests.get(url).status_code == 404
500Internal Server Errorサーバー内部でエラーが発生したことを示すrequests.get(url).status_code == 500

これは一部の例であり、HTTPステータスコードにはさまざまな種類があります。

各ステータスコードは異なる意味を持ち、リクエストの結果やサーバーの状態を示す役割を果たしています。

エンコーディングの知識と取得手順

HTTPレスポンスはエンコードされており、その内容を正しく解析するためには適切なエンコーディングを知ることが重要です。

Requestsライブラリでは、Responseオブジェクトのencoding属性を使ってエンコーディングを取得できます。

import requests

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

レスポンスヘッダーの取得と解析

HTTPレスポンスには、ヘッダー情報が含まれています。

これは、レスポンスのメタデータ(エンコーディング、コンテンツタイプ、日付など)を提供します。

Requestsライブラリでは、Responseオブジェクトのheaders属性を通じてこれらの情報にアクセスできます。

import requests

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

レスポンスのヘッッダー情報を表示します。

これはPythonの辞書形式で返され、キーと値のペアで構成されています。

まとめ

当記事を通じて、Python Requestsライブラリの基本的な使い方をや、独自のGETリクエストを送信してレスポンスを解析する方法をお伝えしてきました。

  • Requestsの豊富な機能
  • urllib.requestとの比較
  • リクエストの詳細なカスタマイズ
  • レスポンスヘッダーの解析

今後の学習のための一歩として、POSTリクエストの送信やファイルのアップロード・ダウンロード、セッションの管理など、Requestsライブラリの高度な機能を学ぶことをおすすめします。

また、エラーハンドリングと例外処理についても理解することで、より堅牢なコードを書くことが可能です。

これまで学んだ知識をベースに、さらに学び続けていくことをおすすめします。

以下がPythonでAPIへのアクセス、もしくはAPIを構築するための方法が書かれた記事です。

PythonでAPIを使いこなす|リクエストからAPI構築まで
PythonでAPIを使いこなしたいですか?当記事では、筆者が自作した無料のAPIをつかって、リクエスト・レスポンスを試してみたり、実際に構築した方法を解説しています。実際のコード付きなので、初心者の方は必見です。
タイトルとURLをコピーしました