- Une bibliothèque d’analyse HTML
- Une bibliothèque de classes qui analyse le HTML avec XPath
- Il est conseillé de se familiariser brièvement avec XPath au préalable
- XPath récupère les valeurs des nœuds et des attributs dans un XML à l’aide d’expressions de chemin
- C’est une bibliothèque .NET open‑source
- Ancien dépôt du code source : http://htmlagilitypack.codeplex.com/
Le code source officiel est hébergé sur GitHub : https://github.com/zzzprojects/html-agility-pack
Html Agility Pack est l’une des bibliothèques d’analyse HTML open‑source les plus connues de l’écosystème .NET. Développée en C#, elle est très utilisée pour le scraping web, l’extraction de contenu HTML et la modification de documents HTML.
Son principal atout : sa compatibilité avec du HTML mal formé ou incomplet (la plupart des pages web ne sont pas des XML valides. Le XmlDocument standard ne peut pas les analyser, HAP gère automatiquement ces erreurs).
À l’origine, XPath sert à interroger des documents XML. Une fois que HAP a chargé le HTML dans un arbre DOM, on peut utiliser la syntaxe XPath pour rechercher des nœuds :
- Filtrer des balises, récupérer du texte et extraire des attributs avec des expressions de chemin
- Méthodes courantes :
SelectSingleNode("expression xpath"): renvoie le premier nœud correspondantSelectNodes("expression xpath"): renvoie tous les nœuds correspondants
Pas besoin de télécharger manuellement le code source, installez simplement le paquet via NuGet
Install-Package HtmlAgilityPack
Prend en charge les plateformes .NET majeures : .NET Framework, .NET Core, .NET 5‑.NET9, MAUI et bien d’autres.
Voici un exemple minimal. Créez une application console dans Visual Studio
Puis ajoutez ce code dans la méthode Main
using HtmlAgilityPack;
//1.Charger le texte HTML
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml("chaîne HTML de la page web");
//2.Rechercher des éléments avec XPath
HtmlNode titleNode = htmlDoc.DocumentNode.SelectSingleNode("//title");
string title = titleNode?.InnerText;Langage du code : C++ (cpp)
Vous pouvez ainsi analyser votre chaîne HTML.
Présentation