我是泥谁是水 发表于 2023-6-30 16:35:30

.Net core 采集网页表格数据方法

使用 HtmlAgilityPack 库来将 HTML 表格转换为 DataTable。
首先,确保已经安装了 HtmlAgilityPack 包。可以通过 NuGet 包管理器或者通过命令行安装。
按照以下步骤将 HTML 表格转换为 DataTable:

[*]导入命名空间:
csharpCopy Codeusing HtmlAgilityPack;
[*]创建一个方法来进行转换:
csharpCopy Codepublic static DataTable ConvertHtmlTableToDataTable(string html)
{
    DataTable dataTable = new DataTable("MyDataTable");

    // 加载 HTML 字符串
    HtmlDocument doc = new HtmlDocument();
    doc.LoadHtml(html);

    // 找到表格节点
    HtmlNode tableNode = doc.DocumentNode.SelectSingleNode("//table");

    if (tableNode != null)
    {
      // 找到所有的表头行和数据行
      IEnumerable<HtmlNode> headerRows = tableNode.SelectNodes("tr");
      IEnumerable<HtmlNode> dataRows = tableNode.SelectNodes("tr");

      // 添加表头列到 DataTable
      if (headerRows != null)
      {
            foreach (HtmlNode headerRow in headerRows)
            {
                foreach (HtmlNode headerCell in headerRow.SelectNodes("th"))
                {
                  dataTable.Columns.Add(headerCell.InnerText.Trim());
                }
            }
      }

      // 添加数据列到 DataTable
      if (dataRows != null)
      {
            foreach (HtmlNode dataRow in dataRows)
            {
                DataRow row = dataTable.NewRow();

                for (int i = 0; i < dataTable.Columns.Count; i++)
                {
                  HtmlNode dataCell = dataRow.SelectNodes("td");
                  row = dataCell.InnerText.Trim();
                }

                dataTable.Rows.Add(row);
            }
      }
    }

    return dataTable;
}
[*]调用方法进行转换:
csharpCopy Codestring html = "<table>...</table>";// 假设这里是你的 HTML 表格字符串

DataTable dataTable = ConvertHtmlTableToDataTable(html);注意:这段代码假设 HTML 表格的结构是标准的,即包含表头行( 元素中包含元素)和数据行( 元素中包含 元素)。如果 HTML 结构不符合标准,可能需要进行适当的修改来适应实际情况。

来源:https://www.cnblogs.com/wtlcy/archive/2023/06/30/17516603.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: .Net core 采集网页表格数据方法