ホームページ  >  記事  >  バックエンド開発  >  PHPでHTMLを解析するための実装コード

PHPでHTMLを解析するための実装コード

高洛峰
高洛峰オリジナル
2016-11-30 11:10:031403ブラウズ

最近、PHP を使用して HTML を解析する必要があるクローラーを作成したいと思っています。sourceforge で、CSS セレクターを介して指定された DOM 要素を返すことができるプロジェクトを見つけました。強力な。
まずプログラムの先頭にファイル simple_html_dom.php を導入します
コードをコピーします コードは次のとおりです:
include_once('simple_html_dom.php');

PHP Simple HTML DOM パーサーは DOM オブジェクトを作成する 3 つの方法を提供します
コードは次のとおりです。
// 文字列から DOM オブジェクトを作成します
$html = str_get_html('Hello!');
// URL からの DOM オブジェクト
$html = file_get_html('http://www.google.com/');
// HTML ファイルからの DOM オブジェクトの作成
$html = file_get_html('test.htm');
DOM オブジェクトを取得した後、さまざまな操作を実行できます
コードをコピー コードは次のとおりです:
// すべてのアンカーを検索し、要素オブジェクトの配列を返します
$ret = $html->find('a');
// (N) 番目のアンカーを検索し、要素オブジェクトを返すか、見つからない場合は null を返します (ゼロベース)
$ret = $html->find('a', 0);
// 最後のアンカーを検索し、要素オブジェクトを返します見つからない場合は null (ゼロベース)
$ret = $html->find('a', -1);
// id 属性を持つすべての

を検索します
$ret = $html-> find('div[id]') ;
// id=foo の属性をすべて検索
$ret = $html->find('div[id=foo]'); jQuery で DOM 操作を実行すると非常に便利です。さらに、テキストとコメントの内容を取得するための 2 つの特別な属性があります。
コードをコピーします。 コードは次のとおりです。
// すべてのテキスト ブロックを検索します
$es = $html->find('text');
/ / すべてのコメント () ブロックを検索
$es = $html->find('comment');

もちろん、jQuery と同様に、PHP Simple HTML DOM Parser も操作の連鎖と、DOM 要素にアクセスするためのさまざまな単純なメソッドをサポートします。
コードをコピーします。 コードは次のとおりです。
// 例
echo $html->find("#div1", 0)->children(1)-> ;children(1 )->children(2)->id;
// または
echo $html->getElementById("div1")->childNodes(1)->childNodes(1)-> ;childNodes(2 )->getAttribute('id');

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。