【APIデータ取得の基礎】requestsライブラリで簡単にデータ取得!具体例とサンプルコードを使って理解しよう!

※関数の書き方・実行結果に誤りがあるケースがあります。随時修正中です。また誤りに気づかれた方はこちらからご連絡頂きますとめちゃ嬉しいです。

目次

Webスクレイピングとデータ収集の魅力

みんな、今日は「Webスクレイピング」と「データ収集」のお話をするで!これを学ぶことで、ネット上の情報を自動的に集めて、自分のプロジェクトに活かせるようになるんや。

まずは、メリットを紹介するな。例えば、君が好きなアニメの新作情報をいちいち手動で探すのは大変やろ?でも、Webスクレイピングを使ったら、毎日自動で情報を集めてくれるツールを作れたら、楽ちんやん!それに、データを集めることで、分析をしてトレンドを見つけたり、予測したりすることもできるんやで。

この講座では、API(アプリケーションプログラミングインターフェース)を使って、どうやってデータを取得して解析するかを学ぶから、しっかりついてきてな!

APIの基本概念と利点

さて、まずは「API」って何かを理解するところから始めようか。APIは、アプリケーション同士が情報をやり取りするための仕組みや。これを使うことで、他のサービスからデータを取得したり、自分のアプリケーションを拡張したりできるんや。

APIの利点

  • データの取得が簡単
    APIを使えば、複雑な処理をせんでも、必要なデータを簡単に取得できるんや。

  • リアルタイムデータ
    常に最新の情報を取得できるから、リアルタイムでデータを反映させることができるで。

  • 効率的な開発
    自分でデータを集める手間を省けるから、開発の効率が上がるんや。

  • 他のサービスとの連携
    さまざまなサービスと連携できるから、機能を拡張したり、便利なアプリを作ったりできるで。

このように、APIはデータ収集やアプリケーションの開発において非常に便利な存在なんや。これからの講座で、具体的にどうやってAPIを使うかを学んでいくから、楽しみにしといてな!

JSON形式のデータ構造の理解

次は、APIからデータを取得する際によく使われる「JSON(JavaScript Object Notation)」について詳しく見ていこうか。JSONは、データを簡単に読み書きできる形式で、特にウェブでのデータ交換に便利なんや。

JSONの特徴

  • シンプルな構造
    JSONは、キーとバリューのペアでデータを表現するから、見た目がシンプルでわかりやすいんや。例えば、以下のような形でデータが表現されるで。
{
    "名前": "たろう",
    "年齢": 25,
    "趣味": ["アニメ", "ゲーム"]
}
  • 階層構造
    JSONは、ネスト(入れ子)構造ができるから、複雑なデータも表現できるんや。例えば、上の例に住所情報を追加することも簡単にできるで。
{
    "名前": "たろう",
    "年齢": 25,
    "趣味": ["アニメ", "ゲーム"],
    "住所": {
        "市": "大阪市",
        "区": "中央区"
    }
}
  • 言語に依存しない
    JSONは、ほとんどのプログラミング言語で扱えるから、便利や。Pythonももちろんサポートしてるで。

JSONの利点

  • 人間にも読みやすい
    フォーマットがシンプルやから、データを直接見るのも楽やし、デバッグも容易なんや。

  • データ交換に最適
    APIでのデータのやり取りに最適やから、様々なサービスで広く使われてるで。

これからAPIを使ってデータを取得する際に、このJSONの理解がめっちゃ重要になってくるから、しっかり覚えておいてな!次は、実際にAPIを呼び出してデータを取得する方法を見ていくで!

requestsを使用したAPI呼び出し

さあ、次は実際にPythonでAPIを呼び出す方法を学んでいくで!ここでは、requestsというライブラリを使うんや。このライブラリを使うと、HTTPリクエストを簡単に送信できるから、APIからデータを取得するのがめっちゃ楽になるで。

requestsライブラリのインストール

まず、requestsライブラリがインストールされてない場合は、以下のコマンドでインストールしといてな。

!pip install requests

APIの呼び出し

次に、実際にAPIを呼び出してデータを取得するコードを見てみよう。ここでは、例として「JSONPlaceholder」という無料のAPIを使うで。このAPIは、テスト用のデータを提供してくれるんや。

import requests

# APIのエンドポイントURL
url = "https://jsonplaceholder.typicode.com/posts/1"

# GETリクエストを送信してデータを取得
response = requests.get(url)

# ステータスコードの確認
if response.status_code == 200:
    # レスポンスの内容を表示
    print(response.json())
else:
    print("エラーが発生しました:", response.status_code)

コードの解説

  • requests.get(url):指定したURLにGETリクエストを送信するんや。
  • response.status_code:リクエストの結果を示すステータスコードを取得できるで。200なら成功や。
  • response.json():取得したレスポンスをJSON形式でパースして、Pythonの辞書型に変換してくれるんや。

このように、requestsライブラリを使うことで、簡単にAPIからデータを取得できるようになるで!次は、取得したデータをパースして、使いやすい形に整える方法を見ていくから、楽しみにしといてな!

レスポンスデータのパース(json化)

さて、APIからデータを取得する方法がわかったところで、今度はそのレスポンスデータをパースする方法を学んでいこうか。パースっていうのは、データを使いやすい形に変換することを指すんや。

レスポンスデータのパース

requestsライブラリを使ってAPIから取得したデータは、JSON形式になってることが多いんや。Pythonでは、response.json()メソッドを使うことで、簡単にパースできるで。このメソッドを使うと、JSONデータを辞書型(Pythonのオブジェクト)に変換してくれるから、後でデータを扱うのが楽になるんや。

具体的な例

前回のコードを続けて、取得したデータをパースしてみよう。

import requests

# APIのエンドポイントURL
url = "https://jsonplaceholder.typicode.com/posts/1"

# GETリクエストを送信してデータを取得
response = requests.get(url)

# ステータスコードの確認
if response.status_code == 200:
    # レスポンスの内容をJSON形式でパース
    data = response.json()

    # データを表示
    print("タイトル:", data["title"])
    print("本文:", data["body"])
else:
    print("エラーが発生しました:", response.status_code)

コードの解説

  • data = response.json():取得したJSONデータを辞書型に変換して、dataという変数に格納するんや。
  • data["title"]data["body"]:パースしたデータから、必要な情報を取り出すことができるで。

これで、APIから取得したデータをパースして使いやすくすることができたな!これからは、このパースしたデータを使って、分析や処理を行うことができるようになってくるで。次は、取得したデータの処理と分析の基礎を見ていくから、しっかりついてきてな!

取得したデータの処理と分析の基礎

さて、APIからデータを取得して、それをパースするところまでできたな。次は、取得したデータをどうやって処理したり分析したりするかを見ていこうか!このステップがデータを活用するためにめっちゃ大事やで。

データの処理

まずは、取得したデータを使って、何かしらの処理を行うことを考えてみよう。ここでは、前回取得した投稿データから、タイトルや本文を表示するだけやなくて、もう少し加工してみるで。

例: タイトルの文字数をカウントする

import requests

# APIのエンドポイントURL
url = "https://jsonplaceholder.typicode.com/posts/1"

# GETリクエストを送信してデータを取得
response = requests.get(url)

# ステータスコードの確認
if response.status_code == 200:
    # レスポンスの内容をJSON形式でパース
    data = response.json()

    # タイトルと本文を表示
    title = data["title"]
    body = data["body"]
    print("タイトル:", title)
    print("本文:", body)

    # タイトルの文字数をカウント
    title_length = len(title)
    print("タイトルの文字数:", title_length)
else:
    print("エラーが発生しました:", response.status_code)

データの分析

次に、もう少し進んでデータの分析をしてみよう。例えば、複数のデータを取得して、その中から特定の条件に合うものを探したり、集計したりすることができるで。

例: 複数の投稿を取得して分析する

ここでは、投稿のリストを取得して、特定の条件(例えば、タイトルに「e」っていう文字が含まれているかどうか)を満たす投稿を探してみるで。

import requests

# APIのエンドポイントURL
url = "https://jsonplaceholder.typicode.com/posts"

# GETリクエストを送信してデータを取得
response = requests.get(url)

if response.status_code == 200:
    # レスポンスの内容をJSON形式でパース
    data = response.json()

    # タイトルに「e」が含まれる投稿を探す
    filtered_posts = [post for post in data if 'e' in post["title"]]

    print("タイトルに「e」が含まれる投稿:")
    for post in filtered_posts:
        print("-", post["title"])
else:
    print("エラーが発生しました:", response.status_code)

コードの解説

  • filtered_posts = [post for post in data if 'e' in post["title"]]:リスト内包表記を使って、タイトルに「e」が含まれる投稿だけを抽出するんや。
  • 最後に、その条件に合った投稿のタイトルを表示するで。

これで、取得したデータの処理や分析の基礎がわかったな!データをどんなふうに活用するかは、アプリケーションや目的によってさまざまやから、色んな方法を試してみてや。次は、さらに進んで実際のプロジェクトに役立てる方法を見ていくで!

【APIデータ取得の基礎】requestsライブラリで簡単にデータ取得!具体例とサンプルコードを使って理解しよう!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次