【Python】requests.getとは?使い方や指定オブション、.postの違いまでわかりやすく解説

PythonでWebサービスやAPIにアクセスする際に最もよく使われるのが requests.get() です。

この requests.get() メソッドは、指定したURLからデータを「取得する」ための基本操作になります。

この記事では requests.get() の基本的な使い方から、指定できるオプション、requests.post() との違いまで、わかりやすく丁寧に解説します。

requests.get() とは?

requests.get() は、HTTPのGETリクエストを送るためのメソッドです。

Webページを開いたり、APIからデータを取得したりするときに使われます。

サーバーに対して「この情報をください」とリクエストを送り、返ってきたデータを受け取るのが主な役割です。

Pythonでは requests.get(URL) というシンプルな形で使えます。

使い方

基本的な使い方

このコードでは:

  • https://httpbin.org/get にGETリクエストを送り
  • ステータスコード(成功なら200)と
  • レスポンスの中身を表示しています

.text を使うことで、取得したHTMLやJSONなどの生のデータを見ることができます。

具体例:クエリパラメータをつけてリクエスト

GETリクエストではURLの末尾に「?キー=値」の形でパラメータをつけることができます。

Pythonでは params= 引数を使うことで、自動的にURLに追加してくれます。

このコードでは:

  • name=Taro&age=25 というパラメータがURLに追加され
  • response.url で実際のアクセスURLを確認
  • .json() でレスポンスを辞書として扱うことができます

requests.get() で使える主なオプション

引数 説明
params= クエリパラメータを辞書形式で指定
headers= リクエストに任意のHTTPヘッダーを追加
timeout= タイムアウト時間(秒)を指定
auth= ベーシック認証などのユーザー情報を指定
cookies= クッキー情報を追加して送信

例:カスタムヘッダー付きリクエスト

requests.get() と requests.post() の違い

requests.get()requests.post() はどちらも 戻り値として Response オブジェクトを返す 点は共通ですが、HTTPメソッドと送信方法・用途が異なります

基本的な違い

項目 requests.get() requests.post()
HTTPメソッド GET POST
主な用途 サーバーからデータを取得する サーバーにデータを送信する
データの送信方法 URLのクエリパラメータとして送信 リクエストボディに含めて送信
キャッシュの影響 受けやすい(URLが同じなら結果がキャッシュされる場合あり) 基本的にキャッシュされない
安全性の考え方(HTTP仕様上のSafe/Unsafe) 安全(Safe):サーバーの状態を変更しないことが前提 非安全(Unsafe):データ追加や更新などサーバーの状態を変える処理で使う
セキュリティ面での注意 機密情報をURLに含めるとブラウザ履歴やログに残るため危険 機密情報はボディで送信できるが、HTTPSを使わなければ盗聴リスクは残る
一般的な用途例 APIからデータ取得、Webページ取得 フォーム送信、トークン取得、データ登録、ファイルアップロード

実際の動作イメージ

GET(クエリパラメータ送信)

  • URLに ?user=alice&id=123 のようにデータが付く
  • ブラウザでURLを直接開くのと同じ動作

POST(ボディ送信)

  • データはHTTPボディに入れて送信
  • URLは変わらない(https://example.com/api
  • APIやフォーム送信などでよく使う

共通点

  • どちらも Response オブジェクトを返す
  • .status_code.text.json() などでレスポンスデータを取得できる
  • Response.raise_for_status() でHTTPエラーを検知可能

注意点

通信に失敗したときに備えて、Response.raise_for_status() を使ってエラーを検知しましょう。

この方法を使うことで、ステータスコードが 4xx や 5xx の場合に例外を発生させ、問題を早期に検知できます。

まとめ

requests.get() はHTTPのGETリクエストを送る基本メソッドです。

  • サーバーからデータを取得するのに使う
  • クエリパラメータは params= で簡単に指定できる
  • requests.post() はデータ送信用、requests.get() はデータ取得用という役割分担
  • どちらも Response オブジェクトを返し、同じようにレスポンスを扱える
  • エラー処理には Response.raise_for_status() を併用するのが基本

Web APIとのやりとりの第一歩として、まずは requests.get() を使いこなせるようになると、さまざまなデータ取得がスムーズになります。

おすすめの記事