phpQueryを使う。②
php環境でのWebスクレイピングというものを試してみたくPHPのライブラリを探していたところ、
phpQueryというのを見つけたので、使い方を全2回でまとめていきます。
※スクレイピングについては自己責任で行ってください。
findメソッドの利用
findメソッドを活用することで、ある要素の下の要素といった階層構造の指定を行うことができます。
今回も、このHPのトップページを使って試していきましょう。
1 2 | $allitem = $dom [ "#post_list" ]->find( ".post_item" ); echo $allitem ; |
上記のようにfindメソッドを使用し、「post_list」IDの要素下にある「post_item」Classの要素を取得できます。これはさらに連結して、
1 2 | $alltitle = $dom [ "#post_list" ]->find( ".post_item" )->find( ".post_info" )->find( ".title" )->find( "a" )->text(); echo $alltitle ; |
とすることもできます。こうするとトップページのタイトル一覧が取得できますね。
DOM指定
上記のfindメソッドを使わずに、以下のように一つにまとめることも可能です。
1 2 | $alltitle = $dom [ "#post_list .post_item .post_info .title a" ]->text(); echo $alltitle ; |
こちらの方がHTML,CSSが得意な人は使いやすいかもしれないですね。
pq関数を使う。
pq関数を使うこともできますが、あまり違いはないように思います。
1 | echo pq( $dom [ "title" ])->text(); |
まとめ
全2回でphpQueryを使って簡単なPHPスクレイピングを試してみました。
スクレイピングというとpythonなどの方がよくつかわれるのかもしれませんが、
PHPでもとても簡単にできることが分かりました。