Close Menu
Código Simples .NETCódigo Simples .NET
    Facebook X (Twitter) Instagram
    Trending
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    • Por que escalar escrita é tão mais difícil do que escalar leitura?
    • MongoDB Analyzer para .NET: Visualize e otimize suas consultas de forma simples
    • Cardinalidade: O Conceito que Transforma o Desempenho de Bancos de Dados SQL e NoSQL
    Facebook X (Twitter) Instagram
    Código Simples .NETCódigo Simples .NET
    Código Simples .NETCódigo Simples .NET
    Home»Asp.net»Iniciando com o parser Html Agility Pack

    Iniciando com o parser Html Agility Pack

    Jhonathan SoaresBy Jhonathan Soares30 de março de 20161 Min Read Asp.net
    Share
    Facebook Twitter LinkedIn WhatsApp Copy Link

    Html Agility Pack é um parser HTML que constrói uma leitura a partir dos dados do DOM e suporta XPATH simples ou XSLT. É uma biblioteca de código .NET que permite analisar “out of the Web” arquivos HTML. O analisador é muito tolerante com o ” mundo real ” HTML malformado. O modelo de objeto é muito semelhante ao que propõe System.Xml por isto sua busca se torna tão simples.

    Primeiro faça o download do mesmo ou via nuget também.

    Bom, então, vamos ao código:

    HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
    
    // Existem várias opções, utilize o que lhe ajuda mais, porém pode deixar o mais padrão possível.
    htmlDoc.OptionFixNestedTags=true;
    
    // arquivo em html
    htmlDoc.Load(filePath);
    
    // Utilize:  htmlDoc.LoadHtml(xmlString);   para carregar uma string
    
    // Verifica se existe erros
    if (htmlDoc.ParseErrors != null && htmlDoc.ParseErrors.Count() > 0)
    {
        // Lidar com erros
    
    }
    else
    {
    
        if (htmlDoc.DocumentNode != null)
        {
        // Realiza a logica do parse
            HtmlAgilityPack.HtmlNode bodyNode = htmlDoc.DocumentNode.SelectSingleNode("//body");
    
            if (bodyNode != null)
            {
                // Realiza a logica do parse
            }
        }
    }
    
    

     

    Veja um código de utilização simples:

    /* -- Considerando este HTML
    <h2>
      <a href="">Jack</a>
    </h2>
    <ul>
      <li class="tel">
        <a href="">81 75 53 60</a>
      </li>
    </ul>
    <h2>
      <a href="">Roy</a>
    </h2>
    <ul>
      <li class="tel">
        <a href="">44 52 16 87</a>
      </li>
    </ul>
    */
    
    //Utilização
    
    string url = "http://website.com";
    var Webget = new HtmlWeb();
    var doc = Webget.Load(url);
    foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//h2//a"))
    {
      names.Add(node.ChildNodes[0].InnerHtml);
    }
    foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//li[@class='tel']//a"))
    {
      phones.Add(node.ChildNodes[0].InnerHtml);
    }

     

    Viu só como é simples?

    Um grande abraço a todos!

    Share. Facebook Twitter LinkedIn Telegram WhatsApp Copy Link
    Jhonathan Soares
    • Website
    • Facebook
    • X (Twitter)
    • LinkedIn

    Criador do blog Código Simples e com mais 15 anos de experiência em TI, com títulos de MVP Microsoft na área de Visual Studio Development, Neo4j Top 50 Certificate, Scrum Master e MongoDB Evangelist.

    Posts Relacionados

    O que é a Ecma e qual é sua relação com C#?

    C# Post do Leitor 29 de julho de 20247 Mins Read

    Boas práticas de criação, armazenamento e validação de senhas em .NET

    Asp.net Boas práticas 9 de julho de 20248 Mins Read

    UUID vs ULID: comparação e exemplos em C#

    C# 19 de junho de 20245 Mins Read
    Newsletter

    Digite seu endereço de e-mail para receber notificações de novas publicações por e-mail.

    Junte-se a 25mil outros assinantes
    Posts recentes
    • NewSQL em 2025: O Estado Atual, Tendências e o Futuro dos Bancos de Dados Relacionais Escaláveis
    • 12 Regras Essenciais para Reduzir a Latência de Aplicações
    • Cache Hit Ratio: Como uma Simples Métrica Pode Revolucionar sua Arquitetura
    • Como a Uber calcula o tempo estimado de chegada
    • 30 APIs Gratuitas para desenvolvedores
    Categorias
    • Arquitetura (14)
      • Testes (2)
    • Asp.net (120)
      • C# (89)
      • Mvc (13)
    • Banco de dados (90)
      • NoSql (58)
      • Sql (38)
    • Boas práticas (29)
      • Gestão & Produtividade (1)
      • Metodologias Ágeis (6)
    • Cursos (52)
    • Dicas (105)
    • Front-End (92)
    • IA (1)
    • Linux (6)
    • NodeJS (4)
    • Post do Leitor (9)
    • Python (5)
    • Seo (12)
    • Tecnologia (30)
      • ITIL (1)
      • Padrões de Projeto (4)
    • Testes (2)

    VEJA TAMBÉM

    Cursos
    12 de fevereiro de 20166 Mins Read

    1000 livros gratuitos sobre programação!

    Olha que dica bacana! A pagina só com livros sobre programação é mantida no GitHub…

    30 APIs Gratuitas para desenvolvedores

    Facebook X (Twitter) Instagram LinkedIn

    Type above and press Enter to search. Press Esc to cancel.

    Vá para versão mobile