Robin's Blog

记录 积累 学习 成长

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  1. package org.zz.test;  
  2. import org.htmlparser.NodeFilter;  
  3. import org.htmlparser.Parser;  
  4. import org.htmlparser.filters.TagNameFilter;  
  5. import org.htmlparser.tags.LinkTag;  
  6. import org.htmlparser.util.NodeList;  
  7. import org.htmlparser.util.ParserException;  
  8. import org.htmlparser.visitors.HtmlPage;  
  9. public class ParserHtmlPage {  
  10.     public NodeList parser(String url) throws ParserException{  
  11.         /**根据url创建parser对象,   || Parser parser = Parser.createParser(url,encoding)**/  
  12.         Parser parser =  new Parser(url);  
  13.          
  14.         /**设置编码,必须与url编码一样,否则挂掉 **/  
  15.         parser.setEncoding("utf-8");  
  16.          
  17.         /** 构建一个html页面对象 **/  
  18.         HtmlPage htmlPage = new HtmlPage(parser);  
  19.         parser.visitAllNodesWith(htmlPage);  
  20.          
  21.         /** 获取body下面所有的节点 **/  
  22.         NodeList list = htmlPage.getBody();  
  23.          
  24.         /** 建立一个filter,用于过滤节点 **/  
  25.         NodeFilter filter = new TagNameFilter("A");  
  26.          
  27.         /** 得到过滤后的节点 **/  
  28.         list = list.extractAllNodesThatMatch(filter, true);  
  29.          
  30.          
  31.         for(int c =0; c < list.size(); c ++){  
  32.                 LinkTag linkTag = (LinkTag) list.elementAt(c);  
  33.                 System.out.println("["+linkTag.getStringText()+"]"+linkTag.getAttribute("href"));//取得href属性的值  
  34.                 //System.out.println(linkTag.getStringText());//取得链接的 文本  
  35.         }  
  36.         return list;  
  37.     }  
  38.      
  39.     public static void main(String[] args) throws ParserException {  
  40.        ParserHtmlPage pp = new ParserHtmlPage();  
  41.        pp.parser("http://www.baidu.com");  
  42.     }  
  43. }  
posted on 2012-04-26 11:39  Robin99  阅读(399)  评论(0)    收藏  举报