html抓取網頁鏈接的例子




Java代碼  收藏代碼
  1. package function.htmlparser;  
  2.   
  3. import org.htmlparser.Node;  
  4. import org.htmlparser.NodeFilter;  
  5. import org.htmlparser.Parser;  
  6. import org.htmlparser.filters.AndFilter;  
  7. import org.htmlparser.filters.HasAttributeFilter;  
  8. import org.htmlparser.filters.HasParentFilter;  
  9. import org.htmlparser.filters.TagNameFilter;  
  10. import org.htmlparser.tags.LinkTag;  
  11. import org.htmlparser.util.NodeIterator;  
  12. import org.htmlparser.util.NodeList;  
  13. import org.htmlparser.util.ParserException;  
  14.   
  15. public class Test {  
  16.   
  17.     public void listAll(Parser parser){  
  18.           
  19.         try {  
  20.             NodeIterator nodeIterator=parser.elements();  
  21.             while (nodeIterator.hasMoreNodes()){  
  22.                 System.out.println("+++++++++++++++++++++");  
  23.                 Node node=nodeIterator.nextNode();  
  24.                 System.out.println("getText():"+node.getText());  
  25.                 System.out.println("getHtml():"+node.toHtml());  
  26.                   
  27.             }  
  28.         } catch (ParserException e) {  
  29.             // TODO Auto-generated catch block  
  30.             e.printStackTrace();  
  31.         }  
  32.           
  33.     }  
  34.       
  35.     public void filter(Parser parser){  
  36.           
  37.         NodeList nodelist;  
  38.           
  39.     //  NodeFilter filterL = new TagNameFilter("a");  
  40.   
  41.         NodeFilter filterS = new HasAttributeFilter("class","post-title");  
  42.           
  43.         NodeFilter filterP= new HasParentFilter(filterS);  
  44.           
  45.   
  46.           
  47.         try {  
  48.             nodelist=parser.parse(filterP);  
  49.             //Node node=nodelist.elementAft(0);  
  50.         //  NodeFilter haf= new HasAttributeFilter("class","post-title");  
  51.   
  52. //          獲取相應的節點  
  53.             nodelist=nodelist.extractAllNodesThatMatch(filterP,true);  
  54.             for(int i=0;i<nodelist.size();i++){  
  55.                 LinkTag link=(LinkTag)nodelist.elementAt(i).getFirstChild();  
  56.             System.out.println(link.getAttribute("href")+"/n");  
  57.                 System.out.println(link.getStringText());  
  58.               
  59.             //  System.out.println(nodelist.elementAt(i).getFirstChild().getText()+"-----"+nodelist.elementAt(i).getFirstChild().toHtml());  
  60.             }  
  61.               
  62.               
  63.               
  64.               
  65.               
  66.               
  67.               
  68.               
  69.         } catch (ParserException e) {  
  70.             // TODO Auto-generated catch block  
  71.             e.printStackTrace();  
  72.         }  
  73.           
  74.     }  
  75.   
  76.     public static void main(String[] args) {  
  77.   
  78.         String urlStr="http://localhost:8080/tomfish88/error.jsp";  
  79.     Parser parser=new Parser();  
  80.     try {  
  81.         parser.setURL(urlStr);  
  82.         parser.setEncoding("gb2312");  
  83.   
  84.     } catch (ParserException e) {  
  85.         // TODO Auto-generated catch block  
  86.         e.printStackTrace();  
  87.     }  
  88.           
  89.         Test test=new Test();  
  90.         test.filter(parser);  
  91.           
  92. }  
  93. }   

 html文件 

 

 

 

Html代碼  收藏代碼
  1. <%@ page language="java" contentType="text/html; charset=GB18030"  
  2.     pageEncoding="GB18030"%>  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  4. <html>  
  5. <head>  
  6. <meta http-equiv="Content-Type" content="text/html; charset=GB18030">  
  7. <title>Insert title here</title>  
  8. </head>  
  9. <body>  
  10. error!!!!!!  
  11.   
  12. <table>  
  13.   
  14. <tr><td>td-c1</td></tr>  
  15.         <tr class="post-title"><td><a href="http://www.fsd.com">連接1</a></td></tr>  
  16.           
  17.           
  18. <tr><td>td-cc1 <a href="http://www.fsd44444.com">連接3</a> </td></tr>  
  19.         <tr class="post-title"><td><a href="http://www.fsd222222.com">連接2</a></td></tr>  
  20.           
  21.         </table>  
  22.   
  23. </body>  
  24. </html>  

 

 

 

java文件

發佈了20 篇原創文章 · 獲贊 17 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章