Maison >développement back-end >tutoriel php >Analyse HTML et grattage d'écran avec la bibliothèque HTML DOM simple

Analyse HTML et grattage d'écran avec la bibliothèque HTML DOM simple

Lisa Kudrow
Lisa Kudroworiginal
2025-02-28 10:50:16795parcourir

Ce tutoriel montre comment analyser efficacement le HTML à l'aide d'un analyseur open-source, en évitant les complexités des expressions régulières. Nous allongerons les TUTS envato à titre d'exemple, extraitant des titres d'articles et des descriptions. Ceci est à des fins illustratives; N'oubliez pas d'obtenir toujours la permission avant de gratter un site Web.


  1. Configuration

Commencez par installer Composer, un gestionnaire de packages PHP, pour simplifier l'installation de la bibliothèque.

HTML Parsing and Screen Scraping With the Simple HTML DOM Library

Les étapes supplémentaires sont détaillées ci-dessous.

Documentation

Une documentation complète est disponible sur le référentiel Github officiel du projet.

HTML Parsing and Screen Scraping With the Simple HTML DOM Library ---

  1. Application pratique: gratter les tuts Envato

Créons un script pour extraire des titres d'articles et des descriptions de TUTSTATO. Il s'agit d'une démonstration et ne doit pas être effectuée sans autorisation. Le grattage peut surcharger les serveurs.

HTML Parsing and Screen Scraping With the Simple HTML DOM Library

L'extrait de code de base:

<code class="language-php">use voku\helper\HtmlDomParser;
require_once 'vendor/autoload.php';

$articles = [];
getArticles('https://code.tutsplus.com/tutorials');</code>

Cela inclut la bibliothèque nécessaire et initialise un tableau pour stocker les données de l'article. La fonction getArticles (définie ultérieurement) récupère et traite la page Web.


  1. Extraction des données

Le cœur du script extrait les informations de l'article:

<code class="language-php">$items = $html->find('article');
foreach($items as $post) {
    $articles[] = [
        /* title */ $post->findOne(".posts__post-title")->firstChild()->text(),
        /* description */ $post->findOne("posts__post-teaser")->text()
    ];
}</code>

Cela itère dans chaque élément d'article (<article></article>) et extrait le titre et la description à l'aide de sélecteurs CSS. Chaque entrée $articles contiendra une paire de titre et de description. Par exemple:

<code class="language-php">$articles[0][0] = "My Article Name Here";
$articles[0][1] = "This is my article description";</code>

  1. Gestion de la pagination

Pour gérer plusieurs pages, nous identifions le lien de page "Suivant":

HTML Parsing and Screen Scraping With the Simple HTML DOM Library HTML Parsing and Screen Scraping With the Simple HTML DOM Library HTML Parsing and Screen Scraping With the Simple HTML DOM Library

le HTML pertinent:

<code class="language-html"><a aria-label="next" class="pagination__button pagination__next-button" href="https://www.php.cn/link/a3cdf7cabc49ea4612b126ae2a30ecbf" rel="next"><i class="fa fa-angle-right"></i></a></code>

Le script trouve ce lien, extrait l'attribut href et appelle récursivement getArticles() pour les pages suivantes. Surtout, l'objet $html est éliminé pour éviter l'épuisement de la mémoire.


Conclusion

L'analyse de grands sites Web peut prendre du temps. Ce tutoriel fournit une base pour l'analyse HTML à l'aide d'une bibliothèque conviviale. Bien que cette bibliothèque soit pratique, n'oubliez pas que d'autres méthodes, telles que la manipulation DOM intégrée de PHP avec XPath, existent. Prioriser toujours l'obtention de l'autorisation avant de gratter tout site Web.

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