PigDataロゴ

お問い合わせ
  • サービス&ソリューション
    • スクレイピング代行サービス
    • 物件比較ツール「Mekiki」
    • Webサイト監視ツール「TOWA」
    • 最新営業リスト作成・管理
      ダッシュボード
    • SNS分析サービス
      「SocialAnalyst」
    • Tableau構築支援サービス
    • シフト自動最適化AIソリューション
      「Optamo for Shift」
  • 導入事例
  • ブログ
  • 運営会社
  • 資料ダウンロード
  • お問い合わせ
  • プライバシーポリシー
  • セキュリティポリシー
  • トップに戻る
PigData > ブログ > スクレイピングをPHPでする方法とは?~初心者でもできるサンプルコード付き~

スクレイピングをPHPでする方法とは?~初心者でもできるサンプルコード付き~

2022.09.14
  • スクレイピング

ビックデータを活用することで、多くの情報をもとにしたビジネスが展開できるため、ニーズに沿った商品・サービスの提供がしやすくなります。しかし、ここで問題となるのは自社に十分なデータを蓄積できていない場合です。
そのような場合に役立つのは、インターネット上に溢れている大量の情報をプログラミングで自動収集するスクレイピングです。

この記事では、PHPでスクレイピングを簡単にできる方法をサンプルコードと一緒に紹介します。

目次

  1. スクレイピングとは
  2. PHPがスクレイピングに適している理由
  3. PHPでスクレイピングをしてみよう
  4. さらに高度な収集をするためには
  5. スクレイピングの注意点
  6. まとめ

スクレイピングとは

スクレイピングとは、Webスクレイピングの略で、Web上から必要となる特定のデータを収集・抽出して使いやすいように加工することを意味します。

似た言葉にクローリングがあり、これはWeb上のデータをプログラミングが自動的に巡回しながら収集する手法のことです。例えば、Googleの検索順位を決定するためにWebページの情報を収集するGoogleクローラーが有名です。

Webスクレイピング大全!これさえ読めばすべてがわかる

PHPがスクレイピングに適している理由

スクレイピングをしたくても何から始めればよいのかわからない方もいるでしょう。

そのような方におすすめなのは、「PHP」でスクレイピングをすることです。なぜなら、簡単に実装できるライブラリや標準機能があるためです。それらについて簡単に解説します。

PHPQueryとは

PHPQueryとは、Web上のHTML情報を収集したり、解析したりする機能を簡単に実装できるライブラリのことです。PHPでスクレイピングをするための有名なライブラリですが、2009年より更新が止まっており現在のPHPのバージョンに対応していません。そのため、今回はPHPQueryを使わない方法にします。

おすすめはDOMDocument

PHPの初心者の方にとってはPHPQueryのようなライブラリを追加したり、PHPのバージョンを調整したりすることはハードルが高い作業でしょう。そこで、今回は誰でも体験できるように標準で使えるDOMDocumentを利用してスクレイピングする方法を紹介します。

DOMとは、Document Object Modelの略で「ドキュメントを物として扱うモデル」を意味します。プログラムを介することで、HTMLやXMLといったWebの構成要素に対して、文字色やサイズの変更などを自由に操作できます。

DOMDocumentとは、DOM全体を統括するために必要なドキュメントです。DOMの値を編集する場合は、必ずDOMDocument内に定義してから行います。以下のサンプルコードのようにDomDocumentクラスのloadHTMLクラスを利用することで、HTMLファイルの内容を簡単に取り込めます。

<?php
$dom = new DOMDocument(); //DOMオブジェクトを新規に作成する
$html = file_get_contents("https://xxxx.xxx.xxxx/"); //データを抽出したいURLを入力する
$dom->loadHTML($html); //$htmlに指定したHTMLの内容を$domに取り込む
?>

取り込んだ内容を必要に応じて抽出することで、スクレイピングが可能です。

また、PHPを実行できる環境がない方は、XAMPPをインストールすることで簡単に自宅のパソコンでもPHPが使えるようになります。ぜひお試しください。

PHPでスクレイピングをしてみよう

PHPを実行できる環境が整ったところで、スクレイピングに挑戦してみましょう。今回は、PigDataのWebサイトからデータを収集する以下の2つのサンプルコードを紹介します。

  • タイトルを抽出するサンプルコード
  • H2の見出しを抽出するサンプルコード

サンプルコードを変更することで、HTML・XMLの様々な情報が取得できます。サンプルコードを実行した結果や変更するポイントについても解説します。

タイトルを抽出するサンプルコード

Webサイトのタイトルは、基本的に1ページに1つしかありません。そのため、タイトルを抽出するサンプルコードは以下のとおりです。

<html>
<?php
  $dom = new DOMDocument('1.0', 'UTF-8');
  $html = file_get_contents("https://pig-data.jp/usecase/pigexample16/");//データを抽出したいURLを入力
  @$dom->loadHTML($html);
  $xpath = new DOMXpath($dom);
  echo $xpath->query("//title")->item(0)->nodeValue; //タイトルを抽出して出力
?>
</html>

上記は、スクレイピングするための最も基本的なコードになります。4行目でデータ抽出したいURLを指定して、1つのデータを抜き出しています。(今回指定したURL:「PDFデータをCSVに変換!スクレイピングで収集もデータ整形も!」)

実行した結果は以下のとおりです。

このように、タイトルだけが表示されます。7行目のtitleを変更することで、他のタグの情報を抽出することも可能です。いろいろと試してみてください。

H2を抽出するサンプルコード

次に、H2を抽出するPHPのサンプルコードを紹介します。H2であれば、タイトルとは異なり1ページで何度も使われるためforeachを利用するのが有効です。サンプルコードは以下のとおりです。

<html>
<?php
  $dom = new DOMDocument('1.0', 'UTF-8');
  $html = file_get_contents("https://pig-data.jp/usecase/pigexample16/");
  @$dom->loadHTML($html);
  $xpath = new DOMXpath($dom);

foreach($xpath->query('//h2') as $node){ //h2の部分を変更することで他のタグなど指定が可能
echo "<p>";
echo $node->nodeValue; //h2の内容を1つずつ表示させる
echo "</p>";

 }
?>
</html>

サンプルコードを実行した結果は、以下のとおりです。

1つ目のサンプルコードとは違い、複数のデータを抽出したことがわかります。サンプルコードを変更する場合は、8行目のh2を好きなタグに設定してみてください。

さらに高度な収集をするためには

今回は、指定したURL・タグのデータを抽出するサンプルコードを紹介しました。しかし、さらに高度なスクレイピングを望んでいる方もいるでしょう。そのような方は、正規表現やデータベースなどを駆使することで、より高度なデータ収集が実現できます。

スクレイピングの注意点

PHPでも簡単にスクレイピングが実現できることを紹介してきましたが、実行する際には注意が必要です。それは、データ収集先からサイトの利用規約違反や、業務妨害として訴えられる可能性があることです。

スクレイピングはプログラミングにより自動でデータ収集するため、通常利用ではありえないほどのアクセスになることがあります。つまり、過度なスクレイピングにより、サーバーダウン・通信障害などを発生しかねません。そのようなトラブルにならないためにも、関係する法律についても知識を深めると良いでしょう。

【IT弁護士監修】スクレイピングは違法?法律に基づいて徹底解説

まとめ

PHPを利用することで、個人でも簡単にスクレイピングでデータ収集を行えます。また、紹介したサンプルコードを改造することで、自動化・高度化、さらにはデータ分析・加工をすることも可能です。

このように、スクレイピングはネット上の情報を集めるには非常に有効な手段ですが、プログラミングが不得意な方にとっては難しいと感じるかもしれません。また、プログラミングが得意であっても、法律に抵触する可能性があるため尻込みしている人もいるでしょう。

そこで、おすすめをしたいのはスクレイピング代行サービスです。プロに任せることで、欲しいデータや情報の加工、法律の問題もクリアできます。PigDataは、ツールでは取得できないサイトから、SNS、大容量データの収集・分析が可能です。ぜひご相談ください。

記事を検索する

  • 全て
  • 業務効率化
  • データ活用
  • ビッグデータ
  • 営業
  • マーケティング
  • スクレイピング
  • 基礎知識
  • DX
  • データ分析
  • スクレイピング法律
  • セドリ
  • 飲食店
  • 不動産
  • 観光
  • SNS
  • IT用語
  • データ収集
  • 補助金
  • 社員渾身ブログ
  • 監視
  • スクレイピング代行
  • ニュース

最新の記事

  • AI活用事例に学ぶ、導入成功のコツ|失敗例からNGパターンも
  • Web改ざん検知とは?おすすめツール6つ紹介
  • 【2023年最新】今更聞けないIT用語45選
  • ダークウェブとは?仕組みや取引される情報、対策方法を解説
  • 【人材会社必見】営業リストの作り方!リストの重要性と効果的な作り方も解説

よく読まれている記事

  • 【2023年最新】今更聞けないIT用語45選
  • Webスクレイピング禁止サイト5選!違法にならないスクレイピングの方法とは
  • Excelは不要!グラフ作成ツールおすすめ10選
  • 【厳選】OSINTツール4選!メリットとポイントとは
  • 【IT弁護士監修】スクレイピングは違法?法律に基づいて徹底解説

関連する記事

  • Web改ざん検知とは?おすすめツール6つ紹介
  • 金額算出に最適な競合調査とは?メリットやデメリット、金額算出の流れを解説
  • 電話営業の成功のコツとは?スクレイピングによるテレアポの効率化

前の記事

不動産業の必須ツール、レインズとは?
提供者や活用方法についても紹介

ブログ一覧へ

次の記事

人気の国内旅行先はどこ!?旅行者の口コミデータからリアルに分析してみた!

お問い合わせ・資料ダウンロード

サービス&ソリューション
  • スクレイピング代行サービス
  • 物件比較ツール「Mekiki」
  • Webサイト監視ツール「TOWA」
  • 最新営業リスト作成・管理
    ダッシュボード
  • SNS分析サービス
    「SocialAnalyst」
  • Tableau構築支援サービス
  • シフト自動最適化AIソリューション
    「Optamo for Shift」
  • 導入事例
  • ニュース&ブログ
  • 運営会社
  • 資料ダウンロード
  • お問い合わせ
  • プライバシーポリシー
  • セキュリティポリシー
keyboard_arrow_up

Copyright © SMS DataTech All Right Reserved