Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android中如何解析網頁,獲取網頁中的元素內容

Android中如何解析網頁,獲取網頁中的元素內容

編輯:關於Android編程

問題:

由於android的WebView等相關類沒有提供解析html網頁內容的接口,我們想要獲取網頁的內容並解析出我們想要的元素內容,用android的固有API是沒辦法了。

這裡我提供兩種解析html思路:第一種,使用第三方解析html庫;第二種,使用JAVA與JS回調,通過JS解析html。

 

之前研究了一下htmlparser這個開源庫,但是發現和android提供的庫有沖突,但其在純java應用程序下是可行的。

htmlparser下載地址:http://htmlparser.sourceforge.net/

 

那麼繼續尋找,是否還有更適合android的HTML解析庫,功夫不負有心人,還是找到一款比較好的開源庫,這就是jsoup。

jsoup 是一款 Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似於JQuery的操作方法來取出和操作數據。該版本包含一個支持 HTML5 的解析器分支,可確保跟現在的浏覽器一樣解析 HTML 的方法,同時降低了解析的時間和內存的占用。

可以使用類似DOM的方法來解析一個網頁,比如說,我已經下載了一個網頁到本地,保存為input.html,那麼通過下面的代碼,我們可以得到id為content的DOM中,所有的超鏈接。字符串linkHref得到的是該鏈接的鏈接地址,字符串linkText得到的是該鏈接的文本描述。

 

jsoup下載地址:http://jsoup.org/

jsoup github地址:https://github.com/scrylove/jsoup

jsoup 入門:http://blog.csdn.net/zjx409/article/details/23375565

 

 

File input = new File(/tmp/input.html); 
Document doc = Jsoup.parse(input, UTF-8, http://example.com/); 
 
Element content = doc.getElementById(content); 
Elements links = content.getElementsByTag(a); 
for (Element link : links) { 
  String linkHref = link.attr(href); 
  String linkText = link.text(); 
} 
File input = new File(/tmp/input.html);
Document doc = Jsoup.parse(input, UTF-8, http://example.com/);
Element content = doc.getElementById(content);
Elements links = content.getElementsByTag(a);
for (Element link : links) {
  String linkHref = link.attr(href);
  String linkText = link.text();
}

 


還有很多其他的方法用於在各種不同情況下解析HTML。這裡就不一一列舉了,有興許的同學可以自己去研究一下。

 

至於第二種思路嘛,這裡不再羅嗦,JAVA和JS互調應該大家都會,至於JS解析html那就交給WEB前端開發人員吧,我們安卓客戶端嘛,只需要得到他們解析完成,回調給我們結果就行。

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved