HtmlAgilityPack C# (.NET) : guide complet avec exemples

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

HtmlAgilityPack pour C# (.NET) : guide complet avec exemples

1. Qu'est-ce que HtmlAgilityPack et pourquoi l'utiliser ?

HtmlAgilityPack est une bibliothèque puissante pour le parsing de documents HTML dans l'écosystème .NET (C#, VB.NET, F#). Elle offre aux développeurs une API pratique pour naviguer, rechercher, extraire et modifier du code HTML. Contrairement aux analyseurs XML standards, HtmlAgilityPack est spécialement conçue pour gérer le HTML "imparfait" que l'on rencontre souvent sur le Web réel : balises non fermées, attributs incorrects, erreurs d'imbrication, etc. La bibliothèque corrige automatiquement ces défauts pour créer un arbre DOM valide.

Pourquoi l'utiliser ? Les principaux cas d'usage incluent : le web scraping (extraction de données depuis des sites web), l'automatisation de tests d'interfaces web, la migration de contenu entre CMS, l'analyse de rapports HTML, le nettoyage et la normalisation de code HTML, ainsi que la création de générateurs HTML personnalisés. Grâce à la prise en charge de XPath et des sélecteurs CSS (via une extension), la bibliothèque permet de sélectionner les éléments souhaités de manière flexible et précise.

HtmlAgilityPack est activement maintenue par la communauté, dispose d'un code source ouvert et est compatible avec .NET Framework 4.5+, .NET Core 2.0+, .NET 5/6/7/8, ainsi qu'avec Xamarin et Unity. Cela en fait un outil universel pour tout développeur .NET travaillant avec du HTML.

2. Installation

L'installation de la bibliothèque se fait via le gestionnaire de paquets NuGet. Exécutez l'une des commandes suivantes dans la console du gestionnaire de paquets (Package Manager Console) ou dans le terminal .NET CLI :

// Via .NET CLI
dotnet add package HtmlAgilityPack

// Via Package Manager Console
Install-Package HtmlAgilityPack

// Ou via l'interface NuGet : recherchez "HtmlAgilityPack" et installez la dernière version stable

Après l'installation, ajoutez la directive using au début de votre fichier :

using HtmlAgilityPack;

3. Démarrage rapide — exemple minimal fonctionnel

Examinons un exemple simple : chargeons une chaîne HTML, trouvons tous les liens et affichons leur texte et leur URL.

using System;
using HtmlAgilityPack;

class Program
{
    static void Main()
    {
        // 1. Créer un document HTML
        var htmlDoc = new HtmlDocument();
        
        // 2. Charger le HTML (en pratique, cela peut venir d'un fichier ou du web)
        string html = @"
        
            
                
            








        ";
        htmlDoc.LoadHtml(html);
        
        // 3. Sélectionner toutes les balises <a> avec XPath
        var links = htmlDoc.DocumentNode.SelectNodes("//a");
        
        // 4. Parcourir chaque lien et afficher le texte et l'attribut href
        if (links != null)
        {
            foreach (var link in links)
            {
                string text = link.InnerText.Trim();
                string href = link.GetAttributeValue("href", "");
                Console.WriteLine($"Texte : {text}, URL : {href}");
            }
        }
    }
}

Résultat de l'exécution :

Texte : Example, URL : https://example.com
Texte : PythonLib, URL : https://pythonlib.fr

4. Classes et méthodes principales

Voici les classes et méthodes clés de HtmlAgilityPack avec des descriptions détaillées et des exemples.

4.1. HtmlDocument — la classe principale pour manipuler le document

Signature : public class HtmlDocument

Description : Représente un document HTML complet. Permet de charger du HTML depuis une chaîne, un fichier ou un flux, ainsi que d'effectuer des recherches et des m

Recommendations