1. import java.util.HashMap;  
    2. import java.util.Map;  
    3. import org.htmlparser.Node;  
    4. import org.htmlparser.NodeFilter;  
    5. import org.htmlparser.Parser;  
    6. import org.htmlparser.tags.LinkTag;  
    7. import org.htmlparser.util.NodeList;  
    8. import com.yao.http.HttpRequester;  
    9. import com.yao.http.HttpRespons;  
    10.    
    11. /**
    12.  * JAVA中使用Htmlparse解析HTML文档,使用htmlparse遍历出HTML文档的所有超链接(<a>标记)。
    13.  * 
    14.  * @author YYmmiinngg
    15.  */  
    16. public class Test {  
    17. public static void main(String[] args) {  
    18. try {  
    19. /* 首先我们先使用HttpRequester类和HttpRespons类获得一个HTTP请求中的数据(HTML文档)。 可以从从我的《JAVA发送HTTP请求,返回HTTP响应内容,实例及应用》一文中摘取上述两JAVA类的代码。
    */  20. new HashMap<String, String>();  
    21. new HttpRequester();  
    22. "http://www.baidu.com");  
    23.    
    24.             Parser parser = Parser.createParser(hr.getContent(), hr  
    25.                     .getContentEncoding());  
    26. try {  
    27. // 通过过滤器过滤出<A>标签  
    28.                 NodeList nodeList = parser  
    29. new NodeFilter() {  
    30. //实现该方法,用以过滤标签  
    31. public boolean accept(Node node) {  
    32. if (node instanceof LinkTag)//<A>标记  
    33. return true;  
    34. return false;  
    35.                             }  
    36.                         });  
    37. // 打印  
    38. for (int i = 0; i < nodeList.size(); i++) {  
    39.                     LinkTag n = (LinkTag) nodeList.elementAt(i);  
    40. " ==>> ");  
    41.                     System.out.println(n.extractLink());  
    42.                 }  
    43. catch (Exception e) {  
    44.                 e.printStackTrace();  
    45.             }  
    46.    
    47. catch (Exception e) {  
    48.             e.printStackTrace();  
    49.         }  
    50.     }  
    51. }