Simple HTML DOM Parserを使ったスクレイピング


Simple HTML DOM parserのインストール

ここ(http://sourceforge.net/projects/simplehtmldom/files/)から
simple_html_dom.phpをダウンロードしてスクリプトと同フォルダ内に保存する。

<?php
include "simple_html_dom.php";
$html = file_get_html('http://www.google.com/');
foreach($html->find('img') as $element){
       echo $element->src . "<br>";
}

Simple HTML DOM parserの使い方

http://simplehtmldom.sourceforge.net/manual.htm

1.URLからDOMを作成

$html = file_get_html(http://www.google.com/'); 

2.DOMから特定要素の抽出

// img要素のソースURLの抽出
foreach($html->find(img) as $element){
    echo $element->src.<br>;
}

// a要素のhref属性の抽出
foreach($html->find(a) as $element){
    echo $element->href.<br>;
}


//属性による抽出対象の指定
foreach($html->find(a[title=top]) as $element){
    echo $element->href.<br>;
}

//classによる抽出対象の指定
$es = $html->find(table.hello td);



//階層の指定
$es = $html->find(table td[align=center]);


//ネスト
foreach ($html->find(div[id=new] as $div1){
    foreach($div1->find(p[title] as $p1){
        echo $p1->plaintext;
    }
}


3.DOMに属性の設定

// img要素の拡張子をjpgからpngに変更
foreach($html->find(img) as $img){
    $img->src = str_replace(jpg,png,$img->src);
}