资讯抓取总结
1. HtmlParser简介
HtmlParser是一个纯java写的html解析类库,它不依赖其它的java库文件,主要用于改造或提取html,HtmlParser主要靠Node和Tag来表达Html
(1)、Node是形成树结构表示HTML的基础,所有的数据表示都是接口Node的实现?Node定义了与页面树结构所表达的页面Page对象,定义了获取父、子、兄弟节点的方法
如:对付树型结构进行遍历的函数,这些函数最轻易理解:
Node getParent ():取得父节点
NodeList getChildren ():取得子节点的列表
Node getFirstChild ():取得第一个子节点
Node getLastChild ():取得最后一个子节点
Node getPreviousSibling ():取得前一个兄弟
Node getNextSibling ():取得下一个兄弟节点
取得Node内容的函数:
String getText ():取得文本
String toHtml () :取得HTML信息(原始HTML)

(2)、Tag是具体分析的主要内容,它包含着各种标签实体类;如:BodyTag,Div,FrameSetTag,OptionTag,linkTag,ImageTag,MetaTag等等。


HtmlParser核心类 org.htmlparser.Parser类,这个类实际完成了对于HTML页面的分析工作。
(1)、构造Parser对象,一般有两种方法:
其一、通过url提取网页的内容
Parser parser = new Parser(); 
parser.setURL("http://www.baidu.com ");
parser.setEncoding("gbk");

其二、提取本地网页文件(通过读文件把网页转换成字符串【httpClient】)
使用静态方法创建Parser对象
Parser parser=Parser.createParser(html,charset);

2. HtmlParser简单例子
public class HtmlParserDemo {

private static Logger logger = Logger.getLogger(HtmlParserDemo.class);

public static void parserTest(){
String content = "";
NodeList list = null;
Parser parser = new Parser();
try {
parser.setURL("http://www.chinachugui.com/news/cgdg/");
parser.setEncoding("gb2312");
/*标签属性过滤*/
NodeList rootList = parser.extractAllNodesThatMatch(new HasAttributeFilter("class","zx_list"));
/*标签类过滤*/
list = rootList.extractAllNodesThatMatch(new NodeClassFilter(Bullet.class), true);