recherche
Maisondéveloppement back-endtutoriel phpAnalyse HTML et grattage d'écran avec la bibliothèque HTML DOM simple

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');

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()
    ];
}

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:

$articles[0][0] = "My Article Name Here";
$articles[0][1] = "This is my article description";

  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>

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
Quelle est la forme complète de PHP?Quelle est la forme complète de PHP?Apr 28, 2025 pm 04:58 PM

L'article traite de PHP, détaillant sa forme complète, les principales utilisations du développement Web, la comparaison avec Python et Java, et sa facilité d'apprentissage pour les débutants.

Comment PHP gère-t-il les données de formulaire?Comment PHP gère-t-il les données de formulaire?Apr 28, 2025 pm 04:57 PM

PHP gère les données de formulaire à l'aide de $ \ _ Post et $ \ _ obtiennent des superglobaux, avec la sécurité assurée par la validation, la désinfection et les interactions de base de données sécurisées.

Quelle est la différence entre PHP et ASP.NET?Quelle est la différence entre PHP et ASP.NET?Apr 28, 2025 pm 04:56 PM

L'article compare PHP et ASP.NET, en se concentrant sur leur pertinence pour les applications Web à grande échelle, les différences de performances et les fonctionnalités de sécurité. Les deux sont viables pour les grands projets, mais PHP est open-source et indépendant de la plate-forme, tandis que ASP.NET,

PHP est-il un langage sensible à la cas?PHP est-il un langage sensible à la cas?Apr 28, 2025 pm 04:55 PM

La sensibilité à la caisse de PHP varie: les fonctions sont insensibles, tandis que les variables et les classes sont sensibles. Les meilleures pratiques incluent la dénomination cohérente et l'utilisation de fonctions insensibles à des cas pour les comparaisons.

Comment redirigez-vous une page en PHP?Comment redirigez-vous une page en PHP?Apr 28, 2025 pm 04:54 PM

L'article traite de diverses méthodes de redirection de pages en PHP, en se concentrant sur la fonction d'en-tête () et en abordant des problèmes communs tels que "les en-têtes ont déjà envoyé" des erreurs.

Expliquez la conduite de types en phpExpliquez la conduite de types en phpApr 28, 2025 pm 04:52 PM

L'article traite de type de type en php, une fonctionnalité pour spécifier les types de données attendues dans les fonctions. Le principal problème est d'améliorer la qualité et la lisibilité du code grâce à l'application de type.

Qu'est-ce que l'APD dans PHP?Qu'est-ce que l'APD dans PHP?Apr 28, 2025 pm 04:51 PM

L'article traite des objets de données PHP (PDO), une extension pour l'accès à la base de données dans PHP. Il met en évidence le rôle de PDO dans l'amélioration de la sécurité grâce à des instructions préparées et à ses avantages sur MySQLI, y compris l'abstraction de la base de données et une meilleure gestion des erreurs.

Comment créer une API dans PHP?Comment créer une API dans PHP?Apr 28, 2025 pm 04:50 PM

L'article discute de la création et de la sécurisation des API PHP, détaillant les étapes de la définition de point final à l'optimisation des performances à l'aide de cadres comme Laravel et les meilleures pratiques de sécurité.

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Version crackée d'EditPlus en chinois

Version crackée d'EditPlus en chinois

Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Télécharger la version Mac de l'éditeur Atom

Télécharger la version Mac de l'éditeur Atom

L'éditeur open source le plus populaire