Como extrair dados da tabela HTML
As tabelas HTML são amplamente utilizadas na web para exibir informações. A extração de dados de tabelas HTML é comum em web scraping, análise de dados e automação. Ao construir analisadores, muitas vezes é necessário extrair dados de uma tabela HTML e convertê-los em um formato estruturado, como JSON, CSV ou Excel. Vamos explorar como extrair dados da tabela HTML.
Primeiro, certifique-se de ter Aspose.HTML for .NET instalado em seu projeto. O processo de instalação desta biblioteca é bastante simples. Abra o gerenciador de pacotes NuGet, procure Aspose.HTML e instale. Você também pode usar o seguinte comando do Console do Gerenciador de Pacotes:
Instale Aspose.HTML para .NET
Install-Package Aspose.HTML
Extraia dados da tabela HTML usando C#
Aspose.HTML for .NET
é uma biblioteca robusta que fornece um poderoso conjunto de ferramentas para analisar e coletar informações de documentos HTML. O exemplo a seguir mostra como encontrar todos os elementos <table>
em um documento HTML, extrair os dados da tabela e gerá-los no formato JSON. Digamos que uma tabela em HTML contém uma lista de testes, onde cada teste possui um ID, um nome, um comentário e um hiperlink para o conteúdo do teste. Esta é a informação que queremos extrair da tabela no exemplo a seguir:
Código C# para extrair dados da tabela HTML
using Aspose.Html;
using System.IO;
using System.Linq;
using System.Text.Json;
using System.Collections.Generic;
...
// Open the document from which you want to extract table data
using var document = new HTMLDocument(Path.Combine(DataDir, "chapter-9.htm"));
{
// Check if there are any table elements in the document
var tables = document.GetElementsByTagName("table");
if (tables.Any())
{
var result = new List<Dictionary<string, string>>();
//var i = 0;
foreach (var table in tables)
{
// extract data from html table
var tbodies = table.GetElementsByTagName("tbody");
foreach (var tbody in tbodies)
{
if (tbody.Children.Length > 1)
{
foreach (var row in tbody.Children)
{
if (row.HasAttribute("id"))
{
//test row
var data = new Dictionary<string, string>();
data["Id"] = row.GetAttribute("id");
if (row.Children.Length > 0)
{
var td = row.Children[0];
if (td.Children.Length > 0)
{
var element = td.Children[0].TagName == "STRONG"
? td.Children[0].Children[0]
: td.Children[0];
var href = ((HTMLAnchorElement)element).Href;
data["Href"] = href;
data["TestName"] = Path.GetFileNameWithoutExtension(href);
}
}
data["TestComment"] = string.Join(" ",
row.Children[3].TextContent
.Split(new char[0], StringSplitOptions.RemoveEmptyEntries).ToList()
.Select(x => x.Trim()));
result.Add(data);
}
}
var json = JsonSerializer.Serialize(result);
Console.WriteLine(json);
}
}
}
}
else
{
// Handle the case where no tables are found
Console.WriteLine("No tables found in the document.");
}
}
Etapas para extrair dados da tabela HTML
Seguindo essas etapas, você pode extrair dados de tabela de HTML, como hiperlinks e conteúdo de texto – para diversos fins, incluindo análise de dados ou relatórios.
- Use o construtor HTMLDocument() para inicializar um documento HTML.
- Use o método
GetElementsByTagName(
"table"
) para coletar todos os elementos<table>
. O método retorna uma lista dos elementos<table>
do documento HTML. Armazene a coleção de elementos da tabela na variáveltables
. - Use o método LINQ
Any()
para verificar se há algum elemento<table>
no documento HTML. Isso garante que haja tabelas das quais extrair dados. - Itere cada tabela encontrada no documento usando um loop
foreach
:- Use o método
GetElementsByTagName("tbody")
para recuperar todos os elementos<tbody>
(corpos da tabela). - Dentro do loop, itere através de cada elemento
<tbody>
para acessar as linhas de dados obtidas usando outro loopforeach
. - Extraia dados relevantes de cada linha com base em condições ou atributos específicos.
- Após extrair os dados de todas as linhas, use o método
JsonSerializer.Serialize()
para serializar a lista de dicionários contendo os dados extraídos para o formato JSON.
- Use o método
- Use o método
Console.WriteLine()
para gerar JSON serializado para exibição no console. - Se o documento não contiver tabelas, imprima uma mensagem no console indicando que nenhuma tabela foi encontrada.
Para saber mais sobre a API Aspose.HTML, visite nosso guia documentação . Aspose.HTML for .NET é uma biblioteca avançada de análise de HTML que permite criar, editar e converter arquivos HTML, XHTML, MD, EPUB e MHTML. A seção de documentação Data Extraction descreve como inspecionar, coletar e extrair automaticamente dados de páginas da web usando Aspose.HTML for .NET. Nos artigos desta seção, você aprenderá como navegar em um documento HTML e realizar uma inspeção detalhada de seus elementos, salvar um site ou arquivo de uma URL, extrair diferentes tipos de imagens de sites e muito mais.
Gerador de Tabela HTML – Aplicativo Online
Aspose.HTML oferece o Gerador de tabelas HTML é um aplicativo online para criação de tabelas com opções personalizáveis. É gratuito e fácil de usar. Basta preencher todas as opções obrigatórias e obter o resultado! O Gerador de Tabela HTML cria automaticamente o código da tabela HTML. Esta ferramenta foi projetada para permitir que você obtenha uma tabela HTML necessária e a coloque online o mais rápido possível.
Outros recursos da biblioteca C# com suporte
Use a biblioteca Aspose.HTML for .NET para analisar e manipular documentos baseados em HTML. Claro, seguro e simples!