Maison >développement back-end >tutoriel php >Comment analyser le contenu HTML à l'aide de PHP et XPath

Comment analyser le contenu HTML à l'aide de PHP et XPath

王林
王林original
2023-06-17 11:17:581745parcourir

À mesure que la technologie Web continue de se développer, le contenu des pages Web devient de plus en plus complexe. Nous avons souvent besoin d'extraire des informations des pages HTML pour un traitement et une analyse ultérieurs, comme les robots d'exploration, l'exploration de données, etc. Cet article explique comment utiliser PHP et XPath pour analyser le contenu HTML et obtenir les informations dont nous avons besoin rapidement et facilement.

  1. PHP Simple HTML DOM Parser

PHP Simple HTML DOM Parser est une bibliothèque de classes PHP open source qui peut analyser des pages HTML dans DOM. La structure peut ensuite être utilisée pour rechercher et manipuler des éléments DOM à l'aide d'une syntaxe de sélection de type jQuery. La bibliothèque fournit des méthodes de sélection intégrées, ainsi que des méthodes find() et xpath() pour rechercher des nœuds, cette dernière nécessitant l'installation et l'activation de l'extension DOM.

Voici un exemple d'utilisation de PHP Simple HTML DOM Parser pour trouver des titres et des liens :

<?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. Utilisation de DOMDocument et DOMXPath
# 🎜🎜#En plus de PHP Simple HTML DOM Parser, PHP fournit également des bibliothèques de classes DOMDocument et DOMXPath intégrées, qui peuvent analyser et rechercher des pages HTML. DOMDocument est une classe similaire à SimpleXML qui peut analyser un document XML ou HTML dans une arborescence DOM, tandis que DOMXPath fournit une méthode xpath() pour rechercher et sélectionner des nœuds à l'aide de XPath.

Voici un exemple d'utilisation de DOMDocument et DOMXPath pour trouver des titres et des liens :

<?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>';
    }
}
?>

Dans l'exemple ci-dessus, nous utilisons la méthode query() pour trouver tous les nœuds de titre h2 , et utilisez des expressions XPath pour obtenir leur contenu textuel et la valeur de l'attribut href du premier nœud derrière eux. Remarque : Les expressions dans DOMXPath doivent suivre la spécification W3C XPath.

    Summary
Cet article décrit comment utiliser PHP et XPath pour analyser le contenu d'une page HTML. PHP Simple HTML DOM Parser peut facilement utiliser une syntaxe de sélection similaire à jQuery pour rechercher et manipuler des éléments DOM, mais ses performances sont relativement faibles pour les grandes pages HTML. DOMDocument et DOMXPath fournissent des méthodes d'analyse et de recherche plus flexibles et efficaces, mais nécessitent un certain coût d'apprentissage. Il est important de choisir la méthode d’analyse appropriée en fonction des besoins réels et des situations spécifiques.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn