HTML Parser
引子:
以前一直在当当上买书,后来听说京东也要卖书了,要跟当当PK。
当然貌似现在已经有这样的一些网站,但是作为程序员,
开始:
一番Google之后,各大网点均没有提供查询API,
.NET提供了WebClient,WebRequest等类型
这样就来到了本文的正题,如何进行HTML解析。
HTML 解析:
1.
解析之前要进行过滤,滤掉所有的CSS,JavaScript语
如下代码:
source = Regex.Replace(source, @"<script[^>]*?>.*?</script>", string.Empty, RegexOptions.IgnoreCase);
2.
目前HTML的解析大致有两种做法,
- HTML DOM
将HTML文本解析成一颗HTML DOM Tree,而后基于树状结构供用户使用。
Html Agility Pack是一个开源类库,就属于这一种做法,支持XPATH和LINQ 查询,易用性非常好。
Scott Mitchell写了一篇很好的文章来介绍这个类库的使用:Parsing HTML
Documents with the Html Agility Pack 。
- 顺序读取
其思想是将所有节点分为三类:头节点例如“<p>”,文本例如“
HTML parser就是这样一种做法,其特点是性能快。CSDN上有一篇帖子写的很好,思想跟这个类似,链接:
http://blog.csdn.net/liigo/archive/2011/01/19/6153829.aspx
根据我的需求,我还是使用了Html Agility Pack库,可以很方便的从HTML中检索出需要的信息。
结语:
HTML Parser用处还是很大的。比如Web页面格式检查、