- Uma biblioteca de análise de HTML
- Uma biblioteca de classes para analisar HTML com XPath
- Recomenda‑se conhecer o básico do XPath antes de começar
- O XPath recupera valores de nós e atributos dentro de XML usando expressões de caminho
- É uma biblioteca .NET de código aberto
- Repositório antigo do código‑fonte:http://htmlagilitypack.codeplex.com/
O código‑fonte oficial está hospedado no GitHub:https://github.com/zzzprojects/html-agility-pack
Html Agility Pack é uma das bibliotecas open‑source mais consolidadas para análise HTML no ecossistema .NET. Desenvolvida em C#, é amplamente utilizada para raspagem de sites, extração de conteúdo HTML e modificação de documentos HTML.
Seu maior diferencial:suporta HTML incompleto ou com formatação inválida (a maioria das páginas da internet não seguem o padrão XML. O XmlDocument padrão não consegue processá‑las, enquanto o HAP faz tratamento automático de falhas).
O XPath foi originalmente criado para consultar documentos XML. Após o HAP carregar o HTML em uma árvore DOM, também é possível usar a sintaxe XPath para buscar nós:
- Filtrar tags, extrair textos e atributos por meio de expressões de caminho
- Métodos comuns:
SelectSingleNode("expressão xpath"): retorna o primeiro nó correspondenteSelectNodes("expressão xpath"): retorna todos os nós correspondentes
Não é necessário baixar o código‑fonte manualmente, basta instalar o pacote via NuGet
Install-Package HtmlAgilityPack
Suporta as principais plataformas .NET: .NET Framework, .NET Core, .NET 5‑.NET9, MAUI e outras.
Veja um exemplo simples. Crie um aplicativo de console no Visual Studio
Depois adicione o código abaixo dentro do método Main
using HtmlAgilityPack;
//1.Carregar texto HTML
var htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml("string HTML da página web");
//2.Consultar elementos com XPath
HtmlNode titleNode = htmlDoc.DocumentNode.SelectSingleNode("//title");
string title = titleNode?.InnerText;Code language: C++ (cpp)
Assim você consegue analisar a sua string HTML.
Apresentação