ホームページのDOM要素を取得するのに便利なのが、「Simple HTML DOM」です。基本的な使い方は、設置したファイルを読み込み、「find」メソッドを使うだけです。CSS操作する感覚でDOM要素を取得できます。

1. ファイルのダウンロードは下記のURLのよりダウンロードしてください。
Simple HTML DOM ダウンロード

2. ファイルの設置と簡単な使い方

使い方

 ダウンロードしたファイルを解凍し、フォルダー「simplehtmldom_1_5」を「simplehtmldom」にリネームしました。

・ファイルの読み込み
require_once(‘simplehtmldom/simple_html_dom.php’);

・DOM要素の取得
$html = file_get_html(‘http://www.shinbo.org’);
file_get_html(‘取得するページのURL’)

・詳細の取得 例1
$text = $html->find(‘div’,0)->plaintext;
$html->find(‘取得したいCSS’,インデックス番号)

->plaintext 
タグを除いて取得

->innertext
指定したタグの中身をHTMLで取得

->outertext
指定したタグも含めてHTMLを取得

・詳細の取得 例2
$text = $html->find(‘img’,0)->src;
->src
タグ内の属性値を取得

・取得したいタグが複数ある場合、「foreach」でループさせて取得
li内のテキストを取得する例
foreach($html->find(‘li’) as $li){
 $datas[$n] = $li->plaintext;
 $n++;
}

3. 高度な使い方

使い方 フィルターを使用して取得する

・class属性が「main」の値を取得
$ret = $html->find(‘#main’);

・class属性が「main」の取得
$ret = $html->find(‘.main’);

・div要素のalign属性がcenterのものを取得
$ret = $html->find(‘div[align=center]’);

属性の選択に使用できる演算子
[ attribute ] 指定の属性をもつ要素
[ attribute=value ] 指定された値である 指定の属性をもつ要素
[ attribute!=value ] 指定された値である 指定の属性をもたない要素
[ attribute^=value ] 指定された値から始まる値である 指定の属性をもつ要素
[ attribute$=value ] 指定された値で終わる値である 指定の属性をもつ要素
[ attribute*=value ] 指定された値を含む値である 指定の属性をもつ要素

・「祖先 子孫」 関係で取得 div要素内のすべてp要素の取得
$ret = $html->find(‘div p’);

・「親 > 子供」関係で取得 div要素直下のp要素の取得
$ret = $html->find(‘div > p’);

(参考サイト)
PHP Simple HTML DOM Parserの使用方法
PHP Simple HTML DOM Parserがとっても便利

(感想)
 今までDOMの取得は、htmlのテキストを取得して、その内部のテキスト構造を正規表現を使い内容を取得していましたが、「PHP Simple HTML」で飛躍的に楽になった。