ホームページ >バックエンド開発 >PHPチュートリアル >PHP と XPath を使用して HTML コンテンツを解析する方法
Web テクノロジーが発展し続けるにつれて、Web ページのコンテンツはますます複雑になってきています。クローラーやデータマイニングなど、さらなる処理や分析のために HTML ページから情報を抽出する必要があることがよくあります。この記事では、PHP と XPath を使用して HTML コンテンツを解析し、必要な情報を迅速かつ簡単に取得する方法を紹介します。
PHP Simple HTML DOM Parser は、HTML ページを DOM ツリー構造に解析して使用できるオープン ソースの PHP クラス ライブラリです。 DOM 要素を検索して操作するための jQuery に似たセレクター構文。このライブラリには、組み込みのセレクター メソッドと、ノードを検索するための find() および xpath() メソッドが提供されます。後者では、DOM 拡張機能をインストールして有効にする必要があります。
PHP シンプル HTML DOM パーサーを使用してタイトルとリンクを検索する例を次に示します:
<?php require_once('simple_html_dom.php'); $html = file_get_html('http://example.com/'); // 查找所有的标题和链接 foreach ($html->find('h2') as $header) { echo $header->plaintext . '<br>'; echo $header->next_sibling()->href . '<br>'; } ?>
PHP に加えてシンプルな HTML DOM パーサーである PHP は、HTML ページを解析および検索できる組み込みの DOMDocument および DOMXPath クラス ライブラリも提供します。 DOMDocument は、XML または HTML ドキュメントを DOM ツリー構造に解析できる SimpleXML に似たクラスですが、DOMXPath は、XPath を使用してノードを検索および選択するための xpath() メソッドを提供します。
次は、DOMDocument と DOMXPath を使用してタイトルとリンクを検索する例です:
<?php $html = file_get_contents('http://example.com/'); // 创建 DOMDocument 对象并加载 HTML $dom = new DOMDocument(); @$dom->loadHTML($html); // 创建 DOMXPath 对象并使用 xpath 查找节点 $xpath = new DOMXPath($dom); foreach ($xpath->query('//h2') as $node) { // 查找标题 echo $node->nodeValue . '<br>'; // 查找链接 $link = $xpath->query('./following-sibling::a', $node); if ($link->length > 0) { echo $link->item(0)->getAttribute('href') . '<br>'; } } ?>
上の例では、query() メソッドを使用してすべての h2 タイトル ノードを検索し、XPath を使用します。この式は、テキスト コンテンツと、ノードに続く最初のノードの href 属性値を取得します。注: DOMXPath の式は、W3C XPath 仕様に従う必要があります。
この記事では、PHP と XPath を使用して HTML ページのコンテンツを解析する方法について説明します。 PHP Simple HTML DOM Parser は、jQuery に似たセレクター構文を簡単に使用して DOM 要素を検索して操作できますが、大規模な HTML ページではパフォーマンスが比較的低くなります。 DOMDocument と DOMXPath は、より柔軟で効率的な解析および検索方法を提供しますが、一定の学習コストが必要です。実際のニーズと特定の状況に応じて、適切な解析方法を選択することが重要です。
以上がPHP と XPath を使用して HTML コンテンツを解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。