スクレイピング!PHPでWebページを取得してDOM操作する。のイメージ

php-simple-html-dom-parser

PHPを使っていて、file_get_contentsでWebページを取得できるのはご存知かと思いますが、取得したWebページを整形したり、DOMごとに取得したりするのが面倒だったりします。

そんな時に便利なのが、PHP Simple HTML DOM Parserです。
PHP Simple HTML DOM Parser – Browse Files at SourceForge.net

使い方はいたって簡単。
上記のURLからzipをダウンロードして解凍。
内容物はいくつかありますが、simple_html_dom.phpだけ使います。
スクレイピングしたいファイルから、呼び出します。

  require_once 'simple_html_dom.php';

これだけで使えます。
URLを指定します。

  //URLから取得したい場合は、file_get_html
  $url = 'https://www.nxsw.co.jp';
  $html = file_get_html($url);

  //文字列から取得したい場合は、str_get_html
  $str = '
こんにちは
'; $html = str_get_html($str);

file_get_htmlの内容が長すぎる場合は、file_get_contentsで少し限定してからstr_get_htmlしてもいいかもしれません。

あとはDOMの操作

  //aタグのhref属性を取得して表示する 
  foreach($html->find('a') as $element){
    $element->href . '
'; } //imgタグのsrcとalt属性を取得して表示する foreach($html->find('img') as $element){ 'src => ' . $element->src . '
'; 'alt => ' . $element->alt . '
'; } //#page-titleからテキストを取得して表示する foreach($html->find('#page-title') as $element){ $element->plaintext . '
'; }

DOM操作に関しては、下記のURLに詳しい説明(英語ドキュメント)があるので、参照してみてください。

PHP Simple HTML DOM Parser Manual

データのスクレイピングに関しては、完全に禁止またはAPIを使用しなければならないサイトもありますので、十分に注意して下さい。