Introducción

  • Una biblioteca de análisis HTML
  • Una biblioteca de clases para analizar HTML usando XPath
  • Se recomienda conocer brevemente los fundamentos de XPath
  • XPath obtiene valores de nodo y atributos dentro de XML mediante expresiones de ruta
  • Es una biblioteca .NET de código abierto
  • Antiguo repositorio de código fuente:http://htmlagilitypack.codeplex.com/

El código fuente oficial se aloja actualmente en GitHub:https://github.com/zzzprojects/html-agility-pack

Html Agility Pack es una de las bibliotecas de análisis HTML open‑source más clásicas del ecosistema .NET. Desarrollada en C#, se usa ampliamente para web scraping, extracción de contenido HTML y modificación de documentos HTML.

Su mayor ventaja:admite HTML incompleto o con formato incorrecto (la mayoría de páginas web no son XML bien formados, el XmlDocument estándar no puede procesarlas, HAP tolera estos errores de forma automática).

XPath fue concebido originalmente para consultar documentos XML. Después de que HAP carga el HTML en un árbol DOM, también se puede usar la sintaxis XPath para buscar nodos:

  • Filtrar etiquetas, obtener texto y extraer atributos con expresiones de ruta
  • Métodos más usados:
    • SelectSingleNode("expresión xpath") : devuelve el primer nodo coincidente
    • SelectNodes("expresión xpath") : devuelve todos los nodos coincidentes

No hace falta descargar manualmente el código fuente, instala el paquete directamente desde NuGet

Install-Package HtmlAgilityPack

Compatible con las principales plataformas .NET: .NET Framework, .NET Core, .NET 5‑.NET9, MAUI y más.

Aquí tienes un ejemplo sencillo. Crea una aplicación de consola en Visual Studio

Luego agrega el siguiente código dentro del método Main

using HtmlAgilityPack;

//1.Cargar texto HTML
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml("cadena HTML de la página web");

//2.Consultar elementos con XPath
HtmlNode titleNode = htmlDoc.DocumentNode.SelectSingleNode("//title");
string title = titleNode?.InnerText;Lenguaje del código: C++ (cpp)

Ya puedes analizar tu cadena HTML.

Introducción

Next:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *