Cara Mengekstrak data dari tabel HTML

Tabel HTML banyak digunakan di web untuk menampilkan informasi. Mengekstraksi data dari tabel HTML adalah hal biasa dalam pengikisan web, analisis data, dan otomatisasi. Saat membuat parser, mengekstraksi data dari tabel HTML dan mengonversinya menjadi format terstruktur, seperti JSON, CSV, atau Excel, sering kali diperlukan. Mari jelajahi cara Mengekstrak data dari tabel HTML.

Pertama, pastikan Anda telah Aspose.HTML untuk .NET terinstal di proyek Anda. Proses instalasi perpustakaan ini cukup sederhana. Buka manajer paket NuGet, cari Aspose.HTML, dan instal. Anda juga dapat menggunakan perintah berikut dari Package Manager Console:


Instal Aspose.HTML untuk .NET

Install-Package Aspose.HTML



Ekstrak data dari tabel HTML menggunakan C#

Aspose.HTML untuk .NET adalah perpustakaan tangguh yang menyediakan seperangkat alat canggih untuk menguraikan dan mengumpulkan informasi dari dokumen HTML. Contoh berikut menunjukkan cara menemukan semua elemen <table> dalam dokumen HTML, mengekstrak data tabel, dan menampilkannya dalam format JSON. Katakanlah sebuah tabel dalam HTML berisi daftar pengujian, di mana setiap pengujian memiliki ID, nama, komentar, dan hyperlink ke konten pengujian. Ini adalah informasi yang ingin kami ekstrak dari tabel dalam contoh berikut:


Kode C# untuk mengekstrak data dari tabel 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.");
        }
    }



Langkah-langkah Mengekstrak data dari tabel HTML

Dengan mengikuti langkah-langkah ini, Anda dapat mengekstrak data tabel dari HTML seperti hyperlink dan konten teks – untuk berbagai tujuan, termasuk analisis atau pelaporan data.

  1. Gunakan konstruktor HTMLDocument() untuk menginisialisasi dokumen HTML. Lewati jalur file HTML sumber sebagai parameter ke konstruktor.
  2. Gunakan metode GetElementsByTagName("table") untuk mengumpulkan semua elemen <table>. Metode ini mengembalikan daftar elemen <table> dokumen HTML. Simpan kumpulan elemen tabel dalam variabel tables.
  3. Gunakan metode LINQ Any() untuk memeriksa apakah ada elemen <table> dalam dokumen HTML. Ini memastikan bahwa ada tabel untuk mengekstrak data.
  4. Ulangi setiap tabel yang ditemukan dalam dokumen menggunakan loop foreach:
    • Gunakan metode GetElementsByTagName("tbody") untuk mengambil semua elemen <tbody> (badan tabel).
    • Di dalam loop, lakukan iterasi melalui setiap elemen <tbody> untuk mengakses baris data yang diperoleh menggunakan loop foreach lainnya.
    • Ekstrak data yang relevan dari setiap baris berdasarkan kondisi atau atribut tertentu.
    • Setelah mengekstraksi data dari semua baris, gunakan metode JsonSerializer.Serialize() untuk membuat serial daftar kamus yang berisi data yang diekstraksi ke format JSON.
  5. Gunakan metode Console.WriteLine() untuk menghasilkan output JSON berseri untuk ditampilkan di konsol.
  6. Jika dokumen tidak berisi tabel, cetak pesan ke konsol yang menunjukkan bahwa tidak ada tabel yang ditemukan.

Untuk mempelajari lebih lanjut tentang Aspose.HTML API, silakan kunjungi panduan dokumentasi kami. Aspose.HTML untuk .NET adalah pustaka penguraian HTML tingkat lanjut yang memungkinkan Anda membuat, mengedit, dan mengonversi file HTML, XHTML, MD, EPUB, dan MHTML. Bagian dokumentasi Data Extraction menjelaskan cara memeriksa, mengumpulkan, dan mengekstrak data dari halaman web secara otomatis menggunakan Aspose.HTML untuk .NET. Dalam artikel di bagian ini, Anda akan mempelajari cara menavigasi dokumen HTML dan melakukan pemeriksaan mendetail terhadap elemen-elemennya, menyimpan situs web atau file dari URL, mengekstrak berbagai jenis gambar dari situs web, dan banyak lagi.



Pembuat Tabel HTML – Aplikasi Online

Aspose.HTML menawarkan Pembuat Tabel HTML adalah aplikasi online untuk membuat tabel dengan opsi yang dapat disesuaikan. Gratis dan jelas untuk digunakan. Cukup isi semua opsi yang diperlukan dan dapatkan hasilnya! HTML Table Generator secara otomatis membuat kode tabel HTML. Alat ini dirancang untuk memungkinkan Anda mendapatkan tabel HTML yang diperlukan dan menampilkannya online secepat mungkin.

Fitur perpustakaan C# yang didukung lainnya

Gunakan pustaka Aspose.HTML untuk .NET untuk mengurai dan memanipulasi dokumen berbasis HTML. Jelas, aman dan sederhana!