Webマーケに役立つツールやノウハウ、プログラミングのちょっとしたTipsなどを記録したノートです。

phpQueryで簡単Webスクレイピング!サンプルコード付きで紹介

Webからたくさんの情報を集めようとした時に、Webスクレイピングはとても強力なツールです。サンプルコードとともに、PHPで簡単にスクレイピングする方法をご紹介します。

Webスクレイピングとは

Webコンテンツを自動的に収集・解析し、必要なコンテンツを取得するプログラム、またはその行為のことを差します。クローリングと似ていますが、クローリングは前者のコンテンツを自動的に収集する部分が該当し、スクレイピング は解析して必要なコンテンツを取得することに重きがありつつ、クローリングの概念も包含しています。

phpQueryとは

phpQueryはPHP5で書かれ、jQuery JavaScript Libraryをベースにした、サーバーサイドのDOM API・ライブラリです。
今回はphpQueryを使って「銀座の寿司」ランキングを取得してみます。

ライブラリをダウンロードする

Githubから以下のファイル、ディレクトリ一式をダウンロードします。
・phpQuery.php
・phpQuery のディレクトリ一式

基本的な使い方

テキストを取得したい

URLを取得したい

画像パスを取得したい

サンプルコード

食べログさんの銀座寿司ランキングのページへアクセスし、上位20位の情報を取得・画面表示するプログラムです。
私はpg関数の扱いが最初わからずはまってしまいましたが、pgを使わないと情報を取得できませんので、魔法の言葉だと思って使いましょう。

注意点

スクレイピングを行う時には、取得したいサイトの利用規約を確認しましょう。明示的にスクレイピングを禁止しているサイトがあるので、そういったサイトでは別途提供されているAPIを使うなどルールを守って便利な技術を使いましょう。
利用規約に明記されていない場合でも、サーバーに負荷をかけないよう短時間でアクセスしないようにしましょう。
こちらのサイトに詳しくまとめられているので参考にしてください。

スクレイピングを利用規約で禁止しているサイト例

・Amazon
・Facebook
・Instagram
・Twitter
・Yahooファイナンス

まとめ

プログラミング自体はサンプルコードを使って簡単にできると思います。一方で、取得したいコンテンツのCSSセレクタを見つけたり、設定する方が手間かもしれませんが、一度設定すれば効率的に情報を集めることができます。ルールを守ってスクレイピングを行いましょう。それでは、Have a gentle internet life!