カテゴリ: PHP 更新日: 2026/05/29

PHPでJSONデータをスクレイピング!APIから情報を取得する方法を初心者向けに解説

PHP の JSON データのスクレイピング(API からデータ取得)
PHP の JSON データのスクレイピング(API からデータ取得)

先生と生徒の会話形式で理解しよう

生徒

「先生、PHPでウェブサイトから情報を取ってきたいんですけど、どうしたらいいですか?」

先生

「それならJSONデータを取得する方法が便利です。JSONはウェブサービスがデータを渡すときによく使う形式です。」

生徒

「JSONって何ですか?聞いたことはありますけど難しそうです。」

先生

「JSONは簡単にいうと、データを整理して送るための“箱”みたいなものです。例えば、名前と年齢をセットで渡すときに便利です。」

生徒

「なるほど!PHPでその箱の中身を見たり使ったりすることはできますか?」

先生

「もちろんです。では、実際にAPIからJSONを取得してみましょう。」

1. PHPでJSONデータを取得する準備

1. PHPでJSONデータを取得する準備
1. PHPでJSONデータを取得する準備

PHPでウェブスクレイピングをする場合、APIという仕組みを使ってデータを取得することが多いです。APIとは、ウェブ上の情報をプログラムから簡単に取り出せる窓口のようなものです。今回は、PHPでcurlを使ってAPIからJSONデータを取得する方法を学びます。

2. curlでAPIにアクセスする基本

2. curlでAPIにアクセスする基本
2. curlでAPIにアクセスする基本

PHPにはcurlという機能があり、ウェブにアクセスしてデータを取得できます。curlは“HTTP通信の手段”です。これを使えば、ブラウザで見るのと同じように、プログラムから情報を取れます。


$url = "https://api.example.com/data";
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

このコードでは、指定したURLの情報を取得して画面に表示しています。

3. JSONデータの内容を理解しよう

3. JSONデータの内容を理解しよう
3. JSONデータの内容を理解しよう

APIから取得したデータはJSON形式になっています。JSONは「キー」と「値」の組み合わせでデータが整理されています。


{
  "name": "山田太郎",
  "age": 25,
  "city": "東京"
}

この場合、キーは nameage、値は "山田太郎" や 25 です。

4. PHPでJSONを配列に変換する

4. PHPでJSONを配列に変換する
4. PHPでJSONを配列に変換する

PHPでは json_decode() を使って、JSON文字列を配列やオブジェクトに変換できます。配列にすると扱いやすくなります。


$json = '{"name":"山田太郎","age":25,"city":"東京"}';
$data = json_decode($json, true); // trueで配列に変換
echo $data['name']; // 山田太郎

これでJSONの中の情報を自由に使えるようになりました。

5. APIから取得したJSONデータをPHPで使う例

5. APIから取得したJSONデータをPHPで使う例
5. APIから取得したJSONデータをPHPで使う例

実際にAPIから取得したJSONデータを配列にして、必要な情報だけ取り出してみましょう。


$api_url = "https://api.example.com/users";
$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);

$users = json_decode($response, true);
foreach($users as $user){
  echo $user['name'] . "さんは" . $user['city'] . "に住んでいます。<br>";
}

このコードでは、複数のユーザー情報を順番に表示しています。

6. エラー処理を入れて安全に取得する方法

6. エラー処理を入れて安全に取得する方法
6. エラー処理を入れて安全に取得する方法

APIを使うときは、通信エラーやデータ形式のエラーも起こりえます。PHPでは curl_errno() でエラーを確認できます。


$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);

if(curl_errno($ch)){
  echo "通信エラー: " . curl_error($ch);
}else{
  $data = json_decode($response, true);
  print_r($data);
}
curl_close($ch);

これで安全にデータを取得でき、問題があれば画面に表示できます。

7. PHPで取得したデータをHTMLに表示する

7. PHPで取得したデータをHTMLに表示する
7. PHPで取得したデータをHTMLに表示する

スクレイピングしたデータはPHPで加工して、そのままウェブページに表示することも可能です。


$items = json_decode($response, true);
echo "<ul>";
foreach($items as $item){
  echo "<li>" . $item['title'] . " - " . $item['price'] . "円</li>";
}
echo "</ul>";

このようにして、JSONデータをPHPで整形して、HTMLとして表示できます。

8. 初心者向けの注意点とポイント

8. 初心者向けの注意点とポイント
8. 初心者向けの注意点とポイント

PHPでJSONデータをスクレイピングするときは、次の点に注意しましょう。
1. APIの利用規約を確認する
2. JSONの構造を必ず理解する
3. エラー処理を入れる
4. 取得データを無理に大量取得しない

このようなポイントを押さえると、PHPで安全かつ効率的にデータを扱うことができます。

まとめ

まとめ
まとめ

PHPでJSONデータを取得する基本の振り返り

この記事では、PHPを使ってJSONデータを取得し、APIから情報を取り出す方法について初心者向けにわかりやすく解説してきました。ウェブ開発の世界では、外部サービスとデータをやり取りする機会が非常に多くあります。そのときによく利用されるのがAPIとJSONという仕組みです。PHPでウェブスクレイピングや外部サービス連携を行う場合、この二つの仕組みを理解することがとても重要になります。

まず、APIとはウェブサービスが外部のプログラムに対してデータを提供する窓口のような存在です。通常のウェブページはブラウザで閲覧することを目的としていますが、APIはプログラムがデータを取得するために設計されています。そのため、データ形式も人間が読むHTMLではなく、プログラムが処理しやすいJSON形式で提供されることが多いのです。

JSONとは、キーと値の組み合わせでデータを整理した非常にシンプルなデータ形式です。例えば名前、年齢、住所などの情報を一つのまとまりとして扱うことができます。このシンプルな構造のおかげで、多くのプログラミング言語で扱いやすく、現在ではウェブAPIの標準的なデータ形式として広く利用されています。

PHPでは、このJSONデータを扱うための便利な関数が用意されています。その代表的な関数がjson_decodeです。この関数を利用すると、JSON文字列をPHPの配列やオブジェクトに変換することができます。配列に変換することで、キーを指定して簡単にデータへアクセスできるようになります。

また、APIにアクセスしてJSONデータを取得するためにはcurlという機能を利用します。curlはHTTP通信を行うための仕組みで、ウェブサイトやAPIに対してリクエストを送り、レスポンスとしてデータを受け取ることができます。ブラウザがウェブページを取得する仕組みと似ていますが、プログラムから直接通信できる点が特徴です。

PHPのcurlを使うことで、指定したURLへアクセスし、その結果として返ってくるJSONデータを取得できます。取得したデータはjson_decodeで配列に変換し、foreach文などを使って順番に取り出すことが可能です。この流れを理解することで、ニュース情報、商品データ、ユーザー情報などさまざまなウェブデータをプログラムから利用できるようになります。

PHPでAPIとJSONを扱うときのポイント

PHPでJSONデータを取得する際には、いくつか大切なポイントがあります。まず最初に確認しておきたいのはAPIの利用ルールです。多くのAPIには利用規約があり、アクセス回数や利用方法が決められています。これを守らないとアクセス制限がかかることもあるため、必ず公式ドキュメントを確認してから利用するようにしましょう。

次に重要なのがJSON構造の理解です。APIから返ってくるJSONデータは、サービスによって構造が異なります。配列の中にオブジェクトが入っている場合や、複数の階層になっている場合もあります。そのため、実際に取得したJSONデータを確認し、どのキーにどんな情報が入っているのかを把握することが大切です。

また、通信エラーへの対応も重要です。インターネット通信は必ず成功するとは限りません。サーバーの停止やネットワーク障害などによって、データ取得に失敗する場合もあります。そのためcurl_errnoなどを利用してエラーを確認し、問題が発生した場合に適切な処理を行うようにしておくと安心です。

さらに、取得したJSONデータはそのまま表示するだけでなく、PHPで加工してHTMLに出力することで、動的なウェブページを作ることができます。たとえば商品リスト、ニュース一覧、ユーザー情報一覧などを自動的に表示するページを作ることも可能です。このような仕組みは、現代のウェブサイトやウェブアプリケーションで非常によく利用されています。

理解を深めるサンプルプログラム

最後に、PHPでAPIからJSONデータを取得してHTMLに表示する簡単なサンプルプログラムをもう一度確認してみましょう。このコードではcurlを使ってAPIへアクセスし、取得したJSONデータを配列へ変換してリスト表示しています。


$api_url = "https://api.example.com/products";

$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);

if(curl_errno($ch)){
  echo "通信エラーが発生しました";
}else{

  $products = json_decode($response, true);

  echo "<div class='container mt-4'>";
  echo "<ul class='list-group'>";

  foreach($products as $product){
    echo "<li class='list-group-item'>";
    echo $product['name'] . " : " . $product['price'] . "円";
    echo "</li>";
  }

  echo "</ul>";
  echo "</div>";
}

curl_close($ch);

このようにPHPとJSONを組み合わせることで、外部サービスのデータを自分のウェブサイトに表示することができます。ニュースAPI、天気API、商品APIなど、さまざまなウェブサービスと連携できるため、PHPプログラミングの可能性は大きく広がります。初心者のうちはまず基本となるcurlの使い方とjson_decodeの使い方をしっかり理解することが大切です。

PHPでJSONデータを扱うスキルは、ウェブスクレイピング、ウェブアプリ開発、API連携など多くの分野で役立ちます。今回学んだ内容をもとに、ぜひ実際にいろいろなAPIを試してみてください。プログラムからウェブのデータを取得できるようになると、ウェブ開発の理解が大きく深まり、より高度なシステムを作ることができるようになります。

先生と生徒の振り返り会話

生徒

「先生、今日の記事を読んで、PHPでJSONデータを扱う流れがだいぶ分かってきました。APIにアクセスしてデータを取ってくるという仕組みが面白いですね。」

先生

「いいですね。PHPでAPIからJSONデータを取得する流れはとても重要です。まずcurlでウェブにアクセスし、取得したJSONをjson_decodeで配列に変換する。この二つが基本になります。」

生徒

「JSONはキーと値でデータが整理されているから、配列に変換すると扱いやすいんですよね。」

先生

「その通りです。例えばユーザー情報や商品情報など、複数のデータが並んでいる場合はforeachを使うと簡単に表示できます。」

生徒

「なるほど。APIから取得したデータをHTMLに表示すれば、動的なウェブページも作れそうですね。」

先生

「まさにその通りです。PHPとJSON、そしてAPIを組み合わせることで、ニュース表示サイトや商品一覧サイトなど、実用的なウェブシステムを作ることができます。」

生徒

「まずはcurlとjson_decodeをしっかり練習して、いろいろなAPIを試してみます。」

先生

「それが一番の近道です。実際に手を動かしてJSONデータを取得し、PHPで表示する経験を重ねていけば、ウェブ開発の理解がどんどん深まっていきますよ。」

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

PHP の Web スクレイピングの記事一覧へ
新着記事
New1
Python
Pythonの変数とは?定義方法とデータ型を初心者向けに解説
New2
PHP
PHP の型変換を完全ガイド!初心者でもわかる明示的変換・自動変換
New3
PHP
PHPのCSVファイルの読み書きと文字列処理を基礎から解説!初心者向けガイド
New4
PHP
PHPのメモリ管理と変数の破棄方法をやさしく解説!初心者でもわかるunsetの使い方
人気記事
No.1
Java&Spring記事人気No1
Python
PythonでAPIリクエストを送信する方法を完全解説!requestsライブラリで簡単API通信
No.2
Java&Spring記事人気No2
Python
Pythonで経過時間を計測する方法を完全解説!初心者でもわかる time.perf_counter() と time.sleep()
No.3
Java&Spring記事人気No3
Python
Pythonのコンストラクタ(__init__)の使い方!初心者でもわかるオブジェクトの初期化
No.4
Java&Spring記事人気No4
PHP
PHPの配列をソートする方法!sort, rsort, asort, ksortの使い方を丁寧に解説します!
No.5
Java&Spring記事人気No5
PHP
PHP のフォームデータの受け取り($_POST, $_GET)を完全解説!初心者向けガイド
No.6
Java&Spring記事人気No6
Python
Pythonのタプルの要素を変更できない理由とその回避策を初心者向けに解説
No.7
Java&Spring記事人気No7
ChatGPT
ChatGPTでPythonコードを作成する方法!プロンプトの書き方と質問例を解説
No.8
Java&Spring記事人気No8
Python
Pythonのrequestsライブラリ完全入門!HTTPリクエストの送り方を初心者向けにやさしく解説