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

スクレイピング!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を使用しなければならないサイトもありますので、十分に注意して下さい。