天天看點

利用Jsoup解析HTML

     最近又要做html内容抽取,這次打算嘗試一下除了用正規表達式以外的其他方式。自然第一個想到的就是HtmlParser,結果找到了以後發現最近的更新還是在06年,汗!這個時候很意外的發現了Jsoup,試用了一下感覺相當清爽,推薦一下。

    如果你很有興趣,直接去官方網站看下說明文檔,位址是http://jsoup.org/cookbook/。我這裡給個小例子,目的是從下文中抽取出标題,大家可以看一下他的類jQuery文法。

  1. <div class="artHead">  
  2.   <div>  
  3.     <span class="artType01" style="margin-right: 5px;"><a href="javascript:void(0)">原創</a></span>  
  4.   <h3 class="artTitle"><a href="/2431658/483361">JAVA程式記憶體溢出問題的分析</a>  
  5.   <a href="http://blog.51cto.com/artcommend" target="_blank"><img src="https://s4.51cto.com/image/skin/34/indextj.gif" width="15" height="15" /></a>  
  6.   </h3>  
  7.   </div>  

    這個内容是從我部落格首頁上摘取的,是以直接打開這個頁面進行抽取,測試代碼如下:

  1. package jsoup; 
  2. import java.io.IOException; 
  3. import org.jsoup.Jsoup; 
  4. import org.jsoup.nodes.Document; 
  5. import org.jsoup.select.Elements; 
  6. public class ParseTest { 
  7.     public static void main(String[] args) { 
  8.         try { 
  9.             Document doc = Jsoup.connect("http://passover.blog.51cto.com/").get(); 
  10.             System.out.println(doc.title()); 
  11.             Elements eles = doc.select("div.artHead"); 
  12.             System.out.println(eles.first().select("h3[class=artTitle]")); 
  13.         } catch (IOException e) { 
  14.             e.printStackTrace(); 
  15.         } 
  16.     } 

繼續閱讀