HtmlAgilityPack可以对Html进行解析,获取某个标签的属性的值、InnerText、InnerHtml等,还可以去除js代码,css样式和注释。

using HtmlAgilityPack;HtmlDocument htmlDocContent = new HtmlDocument();
htmlDocContent.LoadHtml(strHtmlContent);

htmlDocContent.DocumentNode为这段Html的根标签,它的ChildNodes属性为其子标签。比如,要获取这段Html中所有的img的src属性的值,和每个标签的InnerText,可以通过递归获取
StringBuilder sbContent = new StringBuilder();if (node.ChildNodes.Count < 1){if (node.InnerText.IsNotNullOrEmpty()){sbContent.AppendLine(string.Concat("<txt>", node.InnerText, "</txt>"));}if (string.Equals(node.Name, "img", StringComparison.InvariantCultureIgnoreCase) && node.Attributes.Contains("src")){sbContent.AppendLine(string.Concat("<img>", FormatHtml.GetFullImageUrl(node.Attributes["src"].Value, siteUrl), "</img>"));}return sbContent.ToString();}foreach (HtmlNode childNode in node.ChildNodes){sbContent.Append(FormatHtml.GetContent(childNode, siteUrl));}return sbContent.ToString();

如果这段html中只有一个标签或者有多个同级标签,那么HtmlAgilityPack会自动生成一个根标签。

HtmlAgilityPack还可以处理js代码,css样式和注释

foreach (HtmlNode nodeScripte in node.Descendants("script").ToList()){nodeScripte.Remove();}foreach (HtmlNode nodeStyle in node.Descendants("style").ToList()){nodeStyle.Remove();}foreach (HtmlNode nodeComment in node.Descendants("//comment()").ToList()){nodeComment.Remove();}

转载于:https://www.cnblogs.com/dc-lancer/archive/2013/03/27/2985163.html

HtmlAgilityPack的简单使用相关推荐

  1. [翻译]使用HtmlAgilityPack更好的HTML分析和验证

    让我们面对它,有时候,当您正在编写自定义的提取和验证规则时Microsoft.VisualStudio.TestTools.WebTesting.HtmlDocument 类不会剪切它.HtmlDoc ...

  2. HtmlAgilityPack 总结(一)

    一个解析html的C#类库HtmlAgilityPack, HtmlAgilityPack是一个基于.Net的.第三方免费开源的微型类库,主要用于在服务器端解析html文档(在B/S结构的程序中客户端 ...

  3. 2012-09-10 23:30 如何解决HtmlAgilityPack得到的InnerText中有残留的script、样式的问题...

    那么如何解决HtmlAgilityPack得到的InnerText中有残留的script.样式的问题呢,在google上搜索"HtmlAgilityPack script innerText ...

  4. 向HtmlAgilityPack道歉:解析HTML还是你好用

    原文:http://www.cnblogs.com/rupeng/archive/2012/02/07/2342012.html 去年写过一篇文章<解析HTML最好的类还是微软自己的>,回 ...

  5. 解析 WEB 中所有 URL 的简单牛B代码,先保存起来,方式将来找不到了

    解析 WEB 中所有 URL 的简单牛B代码,先保存起来,方式将来找不到了 2011-11-22 16:48        by        通用信息化建设平台,        1471       ...

  6. HTML解析利器HtmlAgilityPack

    在以前的项目中周公曾有解析HTML的情况,当时是采用正则表达式一步步将无关的HTML注释及JS代码部分删除掉,然后再用正则表达式找出需要提取的部分,可以说使用正则表达式来做是一个比较繁琐的过程,特别是 ...

  7. .Net解析html文档类库HtmlAgilityPack完整使用说明

    在前几篇文章中([搜房网房产数据采集程序demo--GeckoWebBrowser实例] )都有提到一个解析html的C#类库HtmlAgilityPack, 今天终于有时间整理一下,并把Demo分享 ...

  8. .net core 实现简单爬虫—抓取博客园的博文列表

    一.介绍一个Http请求框架HttpCode.Core HttpCode.Core 源自于HttpCode(传送门),不同的是 HttpCode.Core是基于.net standard 2.0实现的 ...

  9. HtmlAgilityPack/xpath

    [转载]HTML解析利器HtmlAgilityPack 在网上发现了一个.NET下的HTML解析类库HtmlAgilityPack.HtmlAgilityPack是一个支持用XPath来解析HTML的 ...

最新文章

  1. 利用伸展树提高区间操作的性能
  2. 自制 移动端 纯原生 Slider滑动插件
  3. 在mysql数据库中,多表查询,事务,DCL,
  4. python批量巡检服务器_python批量服务器巡检
  5. 7-1 字符串的冒泡排序 (20 分)
  6. 线性同余法生成随机数Matlab_生成安全的随机数
  7. 普元EOS之性能调优
  8. 机甲大师s1 python编程_机甲大师RoboMaster S1教育机器人- DJI 大疆创新
  9. win7局域网共享教程
  10. Flask框架学习笔记10-jinjia2模板继承实例
  11. 非线性优化问题---MATLAB
  12. 网站分析05——流量分析
  13. 海洋cms宝塔定时linux,海洋cms怎么设置宝塔自动采集教程
  14. js实现金额的大写转小写
  15. flowable 会签和或签的实现 任务多实例
  16. KubeSphere 社区双周报 | 功能亮点抢“鲜”看 | 2022-09-30
  17. Convert hex to base64
  18. 南阳理工学院ACM语言入门题目1的思考
  19. 医药数字化的中国实践
  20. html语言单词背不下来,专八词汇背不下来?来看看这七种记忆方法

热门文章

  1. nginx 去掉服务器版本和名称和nginx_status 状态说明
  2. Microsoft Power BI Desktop概念学习系列之Microsoft Power BI Desktop的官网自带示例数据(图文详解)...
  3. Ubuntu 14.04 修改时区
  4. linux使用VNC服务轻松远程安装oracle
  5. Types cannot be provided in put mapping requests, unless the include_type_name parameter is set to t
  6. sklearn中的验证
  7. Python学习——import语句导入模块顺序
  8. 一个numpy报错——ValueError: Object arrays cannot be loaded when allow_pickle=False
  9. c语言自动ejter,Skinnskalle eller ej, ingen ska behöva dö för sina åsikter
  10. java 类无法实例_Java无法从类实例访问类方法