AngleSharp pour C# (.NET) : guide complet avec exemples
AngleSharp est une bibliothèque moderne et performante pour l'analyse et la manipulation de documents HTML, CSS, XML et SVG dans l'écosystème .NET. Elle offre aux développeurs C# une implémentation complète du DOM (Document Object Model), fidèle aux standards du W3C. Contrairement à de nombreux autres parseurs, AngleSharp ne se contente pas d'extraire des données d'une chaîne de caractères : il construit un arbre DOM complet, avec lequel vous pouvez interagir comme dans un navigateur : rechercher des éléments par sélecteurs, modifier des attributs, ajouter ou supprimer des nœuds, et sérialiser le résultat en HTML.
Pourquoi utiliser cette bibliothèque ? Dans le développement web moderne et l'automatisation, il est souvent nécessaire d'analyser des pages HTML par programmation. Cela inclut le parsing de données pour l'analyse, le web scraping (extraction de contenu de sites), les tests d'applications web, la création de générateurs de sites statiques, ou même le développement d'un moteur de navigateur. AngleSharp est parfait pour ces tâches : entièrement écrit en C#, sans dépendances externes (hormis .NET Standard), et bien plus rapide que, par exemple, l'utilisation d'HtmlAgilityPack combiné à des expressions régulières. De plus, la bibliothèque prend en charge les sélecteurs CSS, rendant la navigation dans l'arbre DOM intuitive pour tout développeur web.
Un autre avantage majeur d'AngleSharp est sa modularité et son extensibilité. Vous pouvez ajouter des packages supplémentaires pour travailler avec CSS, des moteurs JavaScript (comme Jint), ou pour parser du SVG. La bibliothèque est activement maintenue par la communauté, dispose d'une documentation détaillée et est utilisée en production par de nombreuses entreprises. Dans ce guide, nous allons détailler l'installation, les méthodes et classes principales, et fournir un exemple concret de parsing d'une page web.
Installation
AngleSharp est distribué via NuGet, le gestionnaire de packages pour .NET. Vous pouvez l'installer de deux manières :
Avec .NET CLI (recommandé)
dotnet add package AngleSharp
Avec la console du gestionnaire de packages dans Visual Studio
Install-Package AngleSharp
Pour le parsing CSS, installez également le package suivant :
dotnet add package AngleSharp.Css
Après l'installation, ajoutez les directives using dans votre code :
using AngleSharp;
using AngleSharp.Dom;
using AngleSharp.Html.Parser;
Démarrage rapide — exemple minimal fonctionnel
Écrivons un programme simple qui charge une chaîne HTML et en extrait le titre (balise <h1>) :
using AngleSharp;
using AngleSharp.Html.Parser;
// 1. Création du parseur
var parser = new HtmlParser();
// 2. Parsing de la chaîne HTML en document DOM
var html = @"<!DOCTYPE html>
<html>
<head><title>Page de test</title></head>
<body>
<h1>Bonjour, AngleSharp !</h1>
<p>Ceci est un paragraphe.</p>
</body>
</html>";
var document = parser.ParseDocument(html);
// 3. Recherche de l'élément h1 et affichage de son texte
var h1 = document.QuerySelector("h1");
Console.WriteLine(h1?.TextContent); // Affiche : Bonjour, AngleSharp !
// 4. Affichage du HTML complet (sérialisation)
Console.WriteLine(document.DocumentElement.OuterHtml);
Cet exemple illustre le cycle de base avec la bibliothèque : parsing → recherche d'élément → extraction de données. Notez que la méthode QuerySelector accepte un sélecteur CSS, ce qui est très pratique.
Méthodes, classes et interfaces principales
AngleSharp propose une API riche. Voici 8 éléments clés dont vous aurez besoin dans 90 % des cas.
1. HtmlParser — la classe principale pour le parsing
Signature : public class HtmlParser : IHtmlParser
Aussi dans la bibliothèque
Recommendations