最終更新:2009-11-30 (月) 04:54:05 (5254d)  

DOMXPath
Top / DOMXPath

DOMDocumentと組み合わせてスクレイピングするサンプル

<?
	$html=file_get_contents("http://example.com");

	$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'auto');//文字化けするからHTMLエンティティに変換する
	$dom = new DOMDocument('1.0', 'UTF-8');
	libxml_use_internal_errors(TRUE); // パースエラーのwarningを非表示に
	$dom->loadHTML($html); 
	libxml_use_internal_errors(FALSE); // 元に戻す

	$xpath = new DOMXPath($dom);
	$results = $xpath->evaluate("/html/body//h3/a");//XPathで指定

	$i=1;
	foreach($results as $item){
		$href=$item->getAttribute('href');
		$text=$item->textContent;


		//3つのうちどれでも取れるぽい
		//var_dump($item->nodeValue);
		//var_dump($item->textContent);
		//var_dump($item->firstChild->data);

	    echo "$i&nbsp;<a href='{$href}'>{$text}</a><br>";
		$i++;
	}
?>

参考