Présentation

  • 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 correspondant
    • SelectNodes("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

Next:

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *