使用HtmlAgilityPack 基础请参考这篇博客:https://www.cnblogs.com/fishyues/p/10232822.html

下面是根据抓取的页面string 来解析并保存到datatable中:

        //HtmlString 获取的html页面的字符串
//XmlPath 解析元素在html中的位置,像:XmlPath = "/html/body/div[3]/div[3]/div[1]/table"
public static DataTable ParsingWeb(string HtmlString, string XmlPath)
{
try
{
//HtmlWeb web = new HtmlWeb();
//HtmlDocument doc = web.Load(WebUrl);
var doc = new HtmlDocument();
doc.LoadHtml(HtmlString);
DataTable htTable = new DataTable();
var tablehtml = doc.DocumentNode.SelectSingleNode(XmlPath); if (tablehtml == null)
{
return null;
}
var TrSelected = tablehtml.SelectNodes(".//tr");
foreach (HtmlNode row in TrSelected)
{
var Index = TrSelected.IndexOf(row);
if (TrSelected.IndexOf(row) == )
{
foreach (HtmlNode cell in row.SelectNodes("th|td")) //有些table 表头是写在 td中的
{ htTable.Columns.Add(cell.InnerText, typeof(string));
}
}
else
{
DataRow TempRow = htTable.NewRow();
foreach (HtmlNode cell in row.SelectNodes("th|td"))
{ var position = row.SelectNodes("th|td").IndexOf(cell);
TempRow[htTable.Columns[position].ColumnName] = cell.InnerText;
}
htTable.Rows.Add(TempRow);
}
}
return htTable;
}
catch (Exception e)
{
return null;
}
}

最新文章

  1. 【原】Github系列之三:开源iOS下 渐变颜色的进度条WGradientProgress
  2. 将C#datagridview控件的数据导出到Excel中
  3. Cornerstone 哪些错误
  4. Word撤销键(Ctrl+z)无效的解决方法
  5. HTML5学习之画布和SVG(四)
  6. java 下载 断点续传
  7. os和os.path模块
  8. Mac下启动Apache
  9. 什么是jetty
  10. 2 - SQL Server 2008 之 使用SQL语句为现有表添加约束条件
  11. FASTMM,FASTCODE,FASTMOVE请移步
  12. Qt编程之实现属性窗口编辑器
  13. EC读书笔记系列之14:条款26、27、28、29、30、31
  14. 基于JDK1.8的HashMap分析
  15. Mysql优化--慢查询日志
  16. vue 单页应用拆分为多页应用
  17. windows系统 webstorm安装zencoding方法
  18. day22 collection 模块 (顺便对比queue也学习了一下队列)
  19. swiper 视频轮番
  20. window批处理——bat文件的编写

热门文章

  1. Jquery 保留N位小数,且千位以上用","号隔开
  2. 工作总结 [all]
  3. LinkedHashSet 元素唯一,存储取出有序
  4. AT89S52汇编实现l通过按键中断切换led灯的四种闪烁模式(单灯左移,单灯右移,双灯左移,双灯右移)
  5. Spring Boot Mybatis-Plus
  6. php 实现八皇后问题
  7. 【转载】Spring最佳后台框架
  8. log4jnet不记录日志的问题解决
  9. Avito Code Challenge 2018
  10. EOS资料收集