HtmlAglityPack使用心得

  这学期的软件工程课,几个团队合作一个比较大的项目,然后我们团队主要负责爬虫获得的数据的处理,抽取元数据,去重等工作。因为不知道爬虫得到的数据具体是什么样子的,所以我们的工作还要能够对得到的html文档能够做一个解析,我主要负责这一块的工作。

  因为html不是一种对语法要求不是特别严格的标记语言,所获得的一个html的文件中可能就会存在各种各样的问题,比如一个标签没有闭合,所以在解析的过程中所面对的情况的复杂度就比较大。通过在网络上查找资料,最终我还是选择了采用开源的HtmlAglityPack来解析html网页。

  HtmlAglityPack将html我网页建立成一棵DOM树,然后我们就可以通过Xpath来对每个节点进行访问,下面就主要介绍一下我做项目的过程中使用到的一些方法:

  1.   Html的读取

  HAP会对读取到的html保存到HtmlDocument类中,HtmlDocumen内部是一个DOM树(DOM是文档对象模型),对于HtmlDocument的读入有很多方法。我主要使用的是:

1 StreamReader sr = new StreamReader("in.html"); //保存在文件中
2 HtmlDocument htmlDocument = new HtmlDocument(sr);

  HAP提供了多种重载方式,其中一些常使用到的有:

1 htmlDocument.Load(string path); // 从文件读取
2 htmlDocument.Load(Stream stream); // 从输入流
3 htmlDocument.Load(TextReader textReader);
4 htmlDocument.LoadHtml(string htmlString);
posted @ 2012-11-06 19:45  shoumu  阅读(644)  评论(0编辑  收藏  举报