Tips

2017.05.31
PHP

phpQueryを使う。①

phpQueryを使う。①

php環境でのWebスクレイピングというものを試してみたくPHPのライブラリを探していたところ、
phpQueryというのを見つけたので、使い方を全2回でまとめていきます。
※スクレイピングについては自己責任で行ってください。

1.phpQuery導入

導入方法はPHPファイルをインクルードするだけですので簡単です。
今回は少し重いですが1ファイルにまとまっているphpQueryAllInOne.phpをインクルードすることにします。以下のURLでgoogle code archiveからダウンロードできます。
https://code.google.com/archive/p/phpquery/downloads

あとはrequireすればOKです。

<?php
require_once('phpQueryAllInOne.php');

2.タグ指定で要素を取得

それでは試しにこのHPのトップページから要素を取得してみましょう。

<?php
require_once('phpQueryAllInOne.php');
$html = file_get_contents('https://techpjin.sakura.ne.jp/techpjin_new/');
$dom = phpQuery::newDocument($html);
echo $dom["title"]->text()."\n";

以下のように表示できればOKです。
「TECH Projin | IT技術情報の発信ブログサイト「テックプロジン」」

上記例の「$dom[“title”]」だけではtitleタグを含む文字列が取得されるため、
textメソッドを使ってタグ内の要素を取り出す必要がある点が少し注意しなければならない点です。

3.ID,class指定で要素を取得

上記はtitleタグの指定でしたが、CSSやjQuery同様、idやclass指定での要素取得も可能です。
例えば、

echo $dom["#site_description"]->text();

とすれば、site_descriptionというIDで指定したタグ内の要素が取得できます。

例えば、

echo $dom[".desc"];

とすれば、descクラス内の要素が全て取得できます。

まとめ

今回はphpQueryの導入方法と簡単な使い方を説明しました。
次回は上記のクラス指定のように複数要素を取得した中から、特定の要素を取り出したりしてみたいと思います。

新連載はじまりました!新PHP基礎 連載リンク

PHP基礎 連載

Recent News

Recent Tips

Tag Search