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
Libérer: 2025-02-28 10:50:16
original
791 Les gens l'ont consulté

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:

use voku\helper\HtmlDomParser;
require_once 'vendor/autoload.php';

$articles = [];
getArticles('https://code.tutsplus.com/tutorials');
Copier après la connexion

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:

$items = $html->find('article');
foreach($items as $post) {
    $articles[] = [
        /* title */ $post->findOne(".posts__post-title")->firstChild()->text(),
        /* description */ $post->findOne("posts__post-teaser")->text()
    ];
}
Copier après la connexion

Cela itère dans chaque élément d'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:

$articles[0][0] = "My Article Name Here";
$articles[0][1] = "This is my article description";
Copier après la connexion

  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:

<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>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal