PHP と XPath を使用して HTML コンテンツを解析する方法

王林
リリース: 2023-06-17 11:36:02
オリジナル
1742 人が閲覧しました

Web テクノロジーが発展し続けるにつれて、Web ページのコンテンツはますます複雑になってきています。クローラーやデータマイニングなど、さらなる処理や分析のために HTML ページから情報を抽出する必要があることがよくあります。この記事では、PHP と XPath を使用して HTML コンテンツを解析し、必要な情報を迅速かつ簡単に取得する方法を紹介します。

  1. PHP Simple HTML DOM Parser

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>';
}
?>
ログイン後にコピー
  1. DOMDocument と DOMXPath の使用

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 仕様に従う必要があります。

  1. 概要

この記事では、PHP と XPath を使用して HTML ページのコンテンツを解析する方法について説明します。 PHP Simple HTML DOM Parser は、jQuery に似たセレクター構文を簡単に使用して DOM 要素を検索して操作できますが、大規模な HTML ページではパフォーマンスが比較的低くなります。 DOMDocument と DOMXPath は、より柔軟で効率的な解析および検索方法を提供しますが、一定の学習コストが必要です。実際のニーズと特定の状況に応じて、適切な解析方法を選択することが重要です。

以上がPHP と XPath を使用して HTML コンテンツを解析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート