htmlParser解析超链接

 package org.zz.test;  
 import org.htmlparser.NodeFilter;  
 import org.htmlparser.Parser;  
 import org.htmlparser.filters.TagNameFilter;  
 import org.htmlparser.tags.LinkTag;  
 import org.htmlparser.util.NodeList;  
 import org.htmlparser.util.ParserException;  
 import org.htmlparser.visitors.HtmlPage;  
 public class ParserHtmlPage {  
     public NodeList parser(String url) throws ParserException{  
         /**根据url创建parser对象,   || Parser parser = Parser.createParser(url,encoding)**/  
         Parser parser =  new Parser(url);  
          
         /**设置编码,必须与url编码一样,否则挂掉 **/  
         parser.setEncoding("utf-8");  
          
         /** 构建一个html页面对象 **/  
         HtmlPage htmlPage = new HtmlPage(parser);  
         parser.visitAllNodesWith(htmlPage);  
          
         /** 获取body下面所有的节点 **/  
         NodeList list = htmlPage.getBody();  
          
         /** 建立一个filter,用于过滤节点 **/  
         NodeFilter filter = new TagNameFilter("A");  
          
         /** 得到过滤后的节点 **/  
         list = list.extractAllNodesThatMatch(filter, true);  
          
          
         for(int c =0; c < list.size(); c ++){  
                 LinkTag linkTag = (LinkTag) list.elementAt(c);  
                 System.out.println("["+linkTag.getStringText()+"]"+linkTag.getAttribute("href"));//取得href属性的值  
                 //System.out.println(linkTag.getStringText());//取得链接的 文本  
         }  
         return list;  
     }  
      
     public static void main(String[] args) throws ParserException {  
        ParserHtmlPage pp = new ParserHtmlPage();  
        pp.parser("http://www.baidu.com");  
     }  
 } 

你可能感兴趣的:(html,C++,c,C#)