ToB企服应用市场:ToB评测及商务社交产业平台
标题:
.Net core 采集网页表格数据方法
[打印本页]
作者:
玛卡巴卡的卡巴卡玛
时间:
2023-6-30 13:55
标题:
.Net core 采集网页表格数据方法
使用 HtmlAgilityPack 库来将 HTML 表格转换为 DataTable。
首先,确保已经安装了 HtmlAgilityPack 包。可以通过 NuGet 包管理器或者通过命令行安装。
按照以下步骤将 HTML 表格转换为 DataTable:
导入命名空间:
csharpCopy Code
using HtmlAgilityPack;
复制代码
创建一个方法来进行转换:
csharpCopy Code
public 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[th]");
IEnumerable<HtmlNode> dataRows = tableNode.SelectNodes("tr[td]");
// 添加表头列到 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")[i];
row[i] = dataCell.InnerText.Trim();
}
dataTable.Rows.Add(row);
}
}
}
return dataTable;
}
复制代码
调用方法进行转换:
csharpCopy Code
string html = "<table>...</table>"; // 假设这里是你的 HTML 表格字符串
DataTable dataTable = ConvertHtmlTableToDataTable(html);
复制代码
注意:这段代码假设 HTML 表格的结构是标准的,即包含表头行([tr] 元素中包含 元素)和数据行([tr] 元素中包含 [td] 元素)。如果 HTML 结构不符合标准,可能需要进行适当的修改来适应实际情况。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/)
Powered by Discuz! X3.4