AngleSharp para C# (.NET): guía completa con ejemplos

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

AngleSharp para C# (.NET): guía completa con ejemplos

AngleSharp es una biblioteca moderna y de alto rendimiento para analizar y manipular documentos HTML, CSS, XML y SVG en el ecosistema .NET. Proporciona a los desarrolladores de C# una implementación completa del DOM (Modelo de Objetos del Documento), muy cercana a los estándares del W3C. A diferencia de muchos otros analizadores, AngleSharp no solo extrae datos de una cadena de texto, sino que construye un árbol DOM completo con el que se puede trabajar como en un navegador: buscar elementos por selectores, modificar atributos, agregar o eliminar nodos y serializar el resultado de vuelta a HTML.

¿Para qué sirve esta biblioteca? En el desarrollo web moderno y la automatización, a menudo surge la necesidad de analizar páginas HTML de forma programática. Esto puede incluir la extracción de datos para análisis, web scraping (obtención de contenido de sitios web), pruebas de aplicaciones web, creación de generadores de sitios estáticos o incluso la implementación de un motor de navegador propio. AngleSharp es ideal para estas tareas, ya que está completamente escrito en C#, no tiene dependencias externas (excepto .NET Standard) y es mucho más rápido que, por ejemplo, usar HtmlAgilityPack combinado con expresiones regulares. Además, la biblioteca es compatible con selectores CSS, lo que hace que la navegación por el árbol DOM sea intuitiva para cualquier desarrollador web.

Otra ventaja importante de AngleSharp es su modularidad y extensibilidad. Puedes agregar paquetes adicionales para trabajar con CSS, motores JavaScript (como Jint) o para analizar SVG. La biblioteca cuenta con el respaldo activo de la comunidad, tiene una documentación detallada y se utiliza en entornos de producción por muchas empresas. En esta guía, analizaremos en detalle la instalación, los métodos y clases principales, y presentaremos un ejemplo real de extracción de datos de una página web.

Instalación

AngleSharp se distribuye a través de NuGet, el gestor de paquetes para .NET. Puedes instalarlo de dos formas:

Mediante .NET CLI (recomendado)

dotnet add package AngleSharp

Mediante la Consola del Administrador de Paquetes en Visual Studio

Install-Package AngleSharp

Para trabajar con el análisis de CSS, instala también el siguiente paquete:

dotnet add package AngleSharp.Css

Después de la instalación, agrega las directivas using a tu código:

using AngleSharp;
using AngleSharp.Dom;
using AngleSharp.Html.Parser;

Inicio rápido: ejemplo mínimo funcional

Escribamos un programa sencillo que cargue una cadena HTML y extraiga el título (etiqueta <h1>):

using AngleSharp;
using AngleSharp.Html.Parser;

// 1. Creamos el analizador
var parser = new HtmlParser();

// 2. Analizamos la cadena HTML en un documento DOM
var html = @"<!DOCTYPE html>
<html>
<head><title>Página de prueba</title></head>
<body>
    <h1>¡Hola, AngleSharp!</h1>
    <p>Este es un párrafo de texto.</p>
</body>
</html>";

var document = parser.ParseDocument(html);

// 3. Buscamos el elemento h1 y mostramos su texto
var h1 = document.QuerySelector("h1");
Console.WriteLine(h1?.TextContent); // Muestra: ¡Hola, AngleSharp!

// 4. Mostramos el HTML completo de nuevo (serialización)
Console.WriteLine(document.DocumentElement.OuterHtml);

Este ejemplo muestra el ciclo básico de trabajo con la biblioteca: análisis → búsqueda de elementos → extracción de datos. Observa que el método QuerySelector acepta un selector CSS, lo cual es muy práctico.

Métodos, clases e interfaces principales

AngleSharp ofrece una API muy completa. A continuación, se presentan 8 elementos clave que necesitarás en el 90% de los casos.

1. HtmlParser: la clase principal para el análisis

Firma: public class HtmlParser : IHtmlParser

Recommendations