Analyse HTML en PHP : aperçu des bibliothèques et outils

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Analyse HTML en PHP : aperçu des bibliothèques et outils



L'analyse HTML est l'une des tâches fréquentes du développeur web. Qu'il s'agisse d'extraire des données d'un site tiers (scraping), d'analyser ses propres pages ou d'automatiser les tests, un outil fiable est indispensable. PHP, en tant que langage serveur, offre plusieurs façons de travailler avec le code HTML. Dans cet article, nous examinerons les trois bibliothèques les plus populaires : PHP Simple HTML DOM Parser, DiDOM et Symfony DomCrawler. Vous découvrirez leurs fonctionnalités, leurs forces et faiblesses, ainsi que des exemples de code.



Pourquoi analyser HTML ?

Les fonctions intégrées de PHP (file_get_contents, preg_match) sont trop primitives pour des tâches complexes. Les expressions régulières deviennent rapidement lourdes et se cassent au moindre changement de structure HTML. Les bibliothèques spécialisées permettent de :

  • Accéder aux éléments via des sélecteurs CSS ou XPath ;
  • Parcourir l'arbre DOM comme en JavaScript ;
  • Extraire du texte, des attributs, des liens ;
  • Modifier le HTML et enregistrer le résultat.


1. PHP Simple HTML DOM Parser

L'une des bibliothèques les plus anciennes et les plus connues. Fonctionne sans dépendances externes, compatible avec PHP 5.6+. Son principal avantage est une syntaxe intuitive rappelant jQuery.



Installation

// Téléchargez le fichier simple_html_dom.php depuis GitHubrequire_once 'simple_html_dom.php';


Exemple d'utilisation

// Créer un objet DOM à partir d'une URL$html = file_get_html('https://example.com');

// Trouver tous les liensforeach($html->find('a') as $link) { echo $link->href . ' - ' . $link->plaintext . "";}

// Extraire le titre h1$h1 = $html->find('h1', 0);echo $h1 ? $h1->plaintext : 'Titre non trouvé';

// Nettoyer la mémoire$html->clear();


Avantages et inconvénients

  • + Simplicité et API intuitive ;
  • + Ne nécessite pas Composer ;
  • - Lent avec les grands documents ;
  • - Projet non mis à jour depuis longtemps ;
  • - Ne supporte pas entièrement les normes modernes PHP 8.x.


2. DiDOM

Bibliothèque moderne, activement maintenue par la communauté. Entièrement compatible avec PHP 7.4–8.3. Utilise les sélecteurs CSS et XPath, fonctionne beaucoup plus rapidement que Simple HTML DOM.



Installation via Composer

composer require imangazaliev/didom


Exemple d'utilisation

use DiDom\\Document;

$document = new Document('https://example.com', true);

// Recherche de tous les liens$links = $document->find('a');foreach ($links as $link) { echo $link->attr('href') . "";}

// Recherche par classe$items = $document->find('.product-title');foreach ($items as $item) { echo $item->text() . "";}

// Extraction du premier élément$firstTitle = $document->first('h2');echo $firstTitle ? $firstTitle->text() : 'Aucun titre';


Avantages et inconvénients

  • + Haute performance ;
  • + Support des sélecteurs CSS de toute complexité ;
  • + Gestion des encodages ;
  • - Nécessite Composer ;
  • - Documentation en russe disponible, mais fragmentaire.


3. Symfony DomCrawler

Partie de l'écosystème Symfony, mais peut être utilisée comme bibliothèque autonome. Fournit une API puissante pour naviguer dans le DOM, extraire des données et travailler avec des formulaires.



Installation

composer require symfony/dom-crawlercomposer require symfony/css-selector  // pour les sélecteurs CSS


Exemple d'utilisation

use Symfony\\Component\\DomCrawler\\Crawler;

$html = file_get_contents('https://example.com');$crawler = new Crawler($

Recommendations