2021/12/19
「WEBサイトから欲しい情報を集めたい」そんなことはありませんか?
外部のWEBサイトからデータを抽出して表示させる方法は大きく2通りあります。
1.APIを使用する
2.Webスクレイピング
このうち、今回は 「Webスクレイピング」 を使ってデータを抽出して表示させるプログラムを作成してみようと思います。
PHPでは「phpQuery」という便利なスクレイピングのライブラリがあるので、それを利用します。
完成形
connpass(IT勉強会支援プラットフォーム)から「Laravel」に関するイベント&勉強会を抽出して、表示させてみます。
connpass では API が用意されているのですが、今回は手軽るにWebスクレイピングで抽出してみます。
デモページは以下になります。
ソースコードはGit Hubに上げています。
手順
1.phpQueryをダウンロード
phpQueryのダウンロードページから最新の「phpQuery-...onefile.zip」をダウンロードします。
Zipファイルを解凍したら中にある「phpQuery-onefile.php」を好きなところに配置します。
2.PHPの記述
DOMで取得したデータは以下のようにセレクタを指定して表示させます。
$doc[" "]の " "
の中身はjQueryのセレクタが使えるので、基本、jQueryと同じように利用すればOKです。
セレクタとは
セレクタはjQueryを記述する際の$()の中のことを指します。
操作したい要素を指定するために使用します。
必要な要素に id が振られていれば、操作に苦労はしませんが、一意なidが振られていない場合は、要素の指定にオプションが必要になります。
「phpQuery」セレクタのオプション
:eq() | 指定した番号の要素を取得する |
:even | 偶数の要素を取得する(※0番目から始まります) |
:odd | 奇数の要素を取得する(※0番目から始まります) |
:gt() | 指定した番号以降の要素を取得する |
:lt() | 指定した番号までの要素を取得する |
3.HTMLの記述
4.動作確認
ローカル環境にてURLにアクセスして、下記のようにデータを取得できたらOKです。
以上です。

仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。