HtmlAgilityPack的简单使用
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的简单使用相关推荐
- [翻译]使用HtmlAgilityPack更好的HTML分析和验证
让我们面对它,有时候,当您正在编写自定义的提取和验证规则时Microsoft.VisualStudio.TestTools.WebTesting.HtmlDocument 类不会剪切它.HtmlDoc ...
- HtmlAgilityPack 总结(一)
一个解析html的C#类库HtmlAgilityPack, HtmlAgilityPack是一个基于.Net的.第三方免费开源的微型类库,主要用于在服务器端解析html文档(在B/S结构的程序中客户端 ...
- 2012-09-10 23:30 如何解决HtmlAgilityPack得到的InnerText中有残留的script、样式的问题...
那么如何解决HtmlAgilityPack得到的InnerText中有残留的script.样式的问题呢,在google上搜索"HtmlAgilityPack script innerText ...
- 向HtmlAgilityPack道歉:解析HTML还是你好用
原文:http://www.cnblogs.com/rupeng/archive/2012/02/07/2342012.html 去年写过一篇文章<解析HTML最好的类还是微软自己的>,回 ...
- 解析 WEB 中所有 URL 的简单牛B代码,先保存起来,方式将来找不到了
解析 WEB 中所有 URL 的简单牛B代码,先保存起来,方式将来找不到了 2011-11-22 16:48 by 通用信息化建设平台, 1471 ...
- HTML解析利器HtmlAgilityPack
在以前的项目中周公曾有解析HTML的情况,当时是采用正则表达式一步步将无关的HTML注释及JS代码部分删除掉,然后再用正则表达式找出需要提取的部分,可以说使用正则表达式来做是一个比较繁琐的过程,特别是 ...
- .Net解析html文档类库HtmlAgilityPack完整使用说明
在前几篇文章中([搜房网房产数据采集程序demo--GeckoWebBrowser实例] )都有提到一个解析html的C#类库HtmlAgilityPack, 今天终于有时间整理一下,并把Demo分享 ...
- .net core 实现简单爬虫—抓取博客园的博文列表
一.介绍一个Http请求框架HttpCode.Core HttpCode.Core 源自于HttpCode(传送门),不同的是 HttpCode.Core是基于.net standard 2.0实现的 ...
- HtmlAgilityPack/xpath
[转载]HTML解析利器HtmlAgilityPack 在网上发现了一个.NET下的HTML解析类库HtmlAgilityPack.HtmlAgilityPack是一个支持用XPath来解析HTML的 ...
最新文章
- 利用伸展树提高区间操作的性能
- 自制 移动端 纯原生 Slider滑动插件
- 在mysql数据库中,多表查询,事务,DCL,
- python批量巡检服务器_python批量服务器巡检
- 7-1 字符串的冒泡排序 (20 分)
- 线性同余法生成随机数Matlab_生成安全的随机数
- 普元EOS之性能调优
- 机甲大师s1 python编程_机甲大师RoboMaster S1教育机器人- DJI 大疆创新
- win7局域网共享教程
- Flask框架学习笔记10-jinjia2模板继承实例
- 非线性优化问题---MATLAB
- 网站分析05——流量分析
- 海洋cms宝塔定时linux,海洋cms怎么设置宝塔自动采集教程
- js实现金额的大写转小写
- flowable 会签和或签的实现 任务多实例
- KubeSphere 社区双周报 | 功能亮点抢“鲜”看 | 2022-09-30
- Convert hex to base64
- 南阳理工学院ACM语言入门题目1的思考
- 医药数字化的中国实践
- html语言单词背不下来,专八词汇背不下来?来看看这七种记忆方法
热门文章
- nginx 去掉服务器版本和名称和nginx_status 状态说明
- Microsoft Power BI Desktop概念学习系列之Microsoft Power BI Desktop的官网自带示例数据(图文详解)...
- Ubuntu 14.04 修改时区
- linux使用VNC服务轻松远程安装oracle
- Types cannot be provided in put mapping requests, unless the include_type_name parameter is set to t
- sklearn中的验证
- Python学习——import语句导入模块顺序
- 一个numpy报错——ValueError: Object arrays cannot be loaded when allow_pickle=False
- c语言自动ejter,Skinnskalle eller ej, ingen ska behöva dö för sina åsikter
- java 类无法实例_Java无法从类实例访问类方法