Comment extraire des données d'un tableau HTML
Les tableaux HTML sont largement utilisés sur le Web pour afficher des informations. L’extraction de données à partir de tableaux HTML est courante dans le scraping Web, l’analyse de données et l’automatisation. Lors de la création d’analyseurs, il est souvent nécessaire d’extraire les données d’un tableau HTML et de les convertir dans un format structuré, tel que JSON, CSV ou Excel. Voyons comment extraire les données d’un tableau HTML.
Tout d’abord, assurez-vous que Aspose.HTML for .NET est installé dans votre projet. Le processus d’installation de cette bibliothèque est assez simple. Ouvrez le gestionnaire de packages NuGet, recherchez Aspose.HTML et installez. Vous pouvez également utiliser la commande suivante depuis la console Package Manager:
Installer Aspose.HTML for .NET
Install-Package Aspose.HTML
Extraire les données d'un tableau HTML en utilisant C#
Aspose.HTML for .NET
est une bibliothèque robuste qui fournit un ensemble d’outils puissants pour analyser et collecter des informations à partir de documents HTML. L’exemple suivant montre comment rechercher tous les éléments <table>
dans un document HTML, extraire les données du tableau et les afficher au format JSON. Disons qu’un tableau en HTML contient une liste de tests, où chaque test a un identifiant, un nom, un commentaire et un lien hypertexte vers le contenu du test. C’est l’information que nous souhaitons extraire du tableau dans l’exemple suivant:
Code C# pour extraire les données d'un tableau 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.");
}
}
Étapes pour extraire les données du tableau HTML
En suivant ces étapes, vous pouvez extraire des données de tableau à partir de HTML, telles que des hyperliens et du contenu textuel, à diverses fins, notamment l’analyse de données ou la création de rapports.
- Utilisez le constructeur HTMLDocument() pour initialiser un document HTML.
- Utilisez la méthode
GetElementsByTagName(
"table"
) pour collecter tous les éléments<table>
. La méthode renvoie une liste des éléments<table>
du document HTML. Stockez la collection d’éléments de table dans la variabletables
. - Utilisez la méthode LINQ
Any()
pour vérifier s’il y a des éléments<table>
dans le document HTML. Cela garantit qu’il existe des tables à partir desquelles extraire les données. - Parcourez chaque table trouvée dans le document à l’aide d’une boucle
foreach
:- Utilisez la méthode
GetElementsByTagName("tbody")
pour récupérer tous les éléments<tbody>
(corps de table). - Dans la boucle, parcourez chaque élément
<tbody>
pour accéder aux lignes de données obtenues à l’aide d’une autre boucleforeach
. - Extrayez les données pertinentes de chaque ligne en fonction de conditions ou d’attributs spécifiques.
- Après avoir extrait les données de toutes les lignes, utilisez la méthode
JsonSerializer.Serialize()
pour sérialiser la liste des dictionnaires contenant les données extraites au format JSON.
- Utilisez la méthode
- Utilisez la méthode
Console.WriteLine()
pour générer du JSON sérialisé à afficher dans la console. - Si le document ne contient pas de tableaux, imprimez un message sur la console indiquant qu’aucun tableau n’a été trouvé.
Pour en savoir plus sur l’API Aspose.HTML, veuillez consulter notre guide documentation . Aspose.HTML for .NET est une bibliothèque d’analyse HTML avancée qui vous permet de créer, modifier et convertir des fichiers HTML, XHTML, MD, EPUB et MHTML. La section de documentation Data Extraction décrit comment inspecter, collecter et extraire automatiquement des données de pages Web à l’aide d’Aspose.HTML for .NET. Dans les articles de cette section, vous apprendrez à naviguer dans un document HTML et à effectuer une inspection détaillée de ses éléments, à enregistrer un site Web ou un fichier à partir d’une URL, à extraire différents types d’images de sites Web, et bien plus encore.
Générateur de tableaux HTML – Application en ligne
Aspose.HTML propose le Générateur de tableaux HTML , une application en ligne permettant de créer des tableaux avec des options personnalisables. Son utilisation est gratuite et claire. Remplissez simplement toutes les options requises et obtenez un résultat! Le générateur de tableau HTML crée automatiquement le code du tableau HTML. Cet outil a été conçu pour vous permettre d’obtenir un tableau HTML requis et de le mettre en ligne le plus rapidement possible.
Autres fonctionnalités de la bibliothèque C# prises en charge
Utilisez la bibliothèque Aspose.HTML for .NET pour analyser et manipuler des documents HTML. Clair, sûr et simple !