HtmlAgilityPack基础知识学习笔记
2012-05-09 11:18
260 查看
HtmlAgilityPack是一款将HTML转换为XML,再通过XPATH来实现网页抓取的动态链接库。
在解析DOM前先需要加载HTML的网页,可以用HtmlDocument类,此类封装了该方法。就拿博客园首页的各个文章的抓取为例,简单的加载为:
当把HTML加载进来以后,然后就可以解析HTML,此处用到了一个HtmlNode类,比较重要的有Attributes属性,例如<div class="diggit" onclick="DiggIt()">***</div>此处的class和onclick就是Attributes属性,可以在网页上面取到每个标题链接的URL。还有许多属性如FirstChild,LastChild,ChildNodes,ParentNode,都能够帮助找到你所需要的结果。同时,SelectSingleNode和SelectNodes对于找到所需要的内容也是有很大的帮助的。(SelectSingleNode:选择匹配 XPath 表达式的第一个XmlNode SelectNodes:选择匹配 XPath 表达式的结点集合 XmlNodeList)。最后依靠InnerHtml和InnerText来输出想要得到的结果。
同样拿博客园首页为例:
这样就取到了标题以及链接。
总结:这个简单的例子只是用到了最基础的功能。还可以查看查看Html Agility文档去领会学习其中更高级的用法。
在解析DOM前先需要加载HTML的网页,可以用HtmlDocument类,此类封装了该方法。就拿博客园首页的各个文章的抓取为例,简单的加载为:
WebClient wc = new WebClient(); using (MemoryStream ms = new MemoryStream(wc.DownloadData(@"http://www.cnblogs.com"))) { HtmlDocument doc = new HtmlDocument(); doc.Load(ms, Encoding.UTF8);}
当把HTML加载进来以后,然后就可以解析HTML,此处用到了一个HtmlNode类,比较重要的有Attributes属性,例如<div class="diggit" onclick="DiggIt()">***</div>此处的class和onclick就是Attributes属性,可以在网页上面取到每个标题链接的URL。还有许多属性如FirstChild,LastChild,ChildNodes,ParentNode,都能够帮助找到你所需要的结果。同时,SelectSingleNode和SelectNodes对于找到所需要的内容也是有很大的帮助的。(SelectSingleNode:选择匹配 XPath 表达式的第一个XmlNode SelectNodes:选择匹配 XPath 表达式的结点集合 XmlNodeList)。最后依靠InnerHtml和InnerText来输出想要得到的结果。
同样拿博客园首页为例:
//获得所有博客总框架的ID节点 var main = doc.GetElementbyId("post_list"); //获得每一条博客的节点集合 var div = main.SelectNodes(".//a[@class='titlelnk' ]"); foreach (var each in div) { //每条BLOG的标题名称 Console.WriteLine(each.InnerText.Trim()); //每条BLOG的URL Console.WriteLine(each.Attributes[1].Value); }
这样就取到了标题以及链接。
总结:这个简单的例子只是用到了最基础的功能。还可以查看查看Html Agility文档去领会学习其中更高级的用法。
相关文章推荐
- HTML/CSS基础知识学习笔记
- 【HTML学习笔记】基础知识1
- python之 前端HTML/CSS基础知识学习笔记
- 传智播客 Html基础知识学习笔记2
- 一、HTML+CSS基础知识学习笔记
- 传智播客 Html基础知识学习笔记
- python之 前端HTML/CSS基础知识学习笔记
- [置顶]学习笔记:HTML+CSS 基础知识
- HTML学习笔记之CSS基础知识
- HTML学习笔记,基础知识篇
- 【C#】通过HtmlAgilityPack+XPath来优化网页采集学习笔记
- HTML基础知识学习笔记
- 〖前端开发〗HTML/CSS基础知识学习笔记
- HtmlAgilityPack 学习和笔记
- HTML学习笔记,基础知识篇
- 【2018.03.21学习笔记】【linux基础知识1.9-1.12】
- ASP.Net MVC开发基础学习笔记:二、HtmlHelper与扩展方法
- MySQL学习笔记 1 - 基础知识
- linux基础知识学习笔记
- 汇编语言学习笔记(一):汇编语言基础知识