溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android應用中的html怎么利用jsoup進行解析

發布時間:2020-12-08 15:33:07 來源:億速云 閱讀:212 作者:Leah 欄目:移動開發

Android應用中的html怎么利用jsoup進行解析?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

1.jsoup介紹

jsoup 是一款Java 的HTML解析器,可直接解析某個URL地址、HTML文本內容。它提供了一套非常省力的API,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數據。

2.使用場景

Android studio玩家可以不下載jar包,在Gradle里面加入

dependencies {
  compile 'org.jsoup:jsoup:1.9.2'
}

然后,找到你心儀的網頁去抓取數據

這里我們我繼續使用美食的網頁,然后右鍵查看網頁源碼,或者按F12,接下來可以看到一大堆標簽:

Android應用中的html怎么利用jsoup進行解析

找到需要的,例如上圖這個 “美食天下” ,可以看到 “美食天下” 是放在以 <div class="top-bar" id="J_top_bar"> 為節點的 <a title="美食天下" 中,要獲取這個“美食天下”,代碼可以這樣寫:

try {  
  //從一個URL加載一個Document對象。
  Document doc = Jsoup.connect("http://home.meishichina.com/show-top-type-recipe.html").get();
  //選擇“美食天下”所在節點
  Elements elements = doc.select("div.top-bar");  
  //打印 <a>標簽里面的title
  Log.i("mytag",elements.select("a").attr("title"));
}catch(Exception e) {  
  Log.i("mytag", e.toString());
}

接下來看一下打印出來的結果:

Android應用中的html怎么利用jsoup進行解析

Jsoup.connect(String url)方法從一個URL加載一個Document對象。如果從該URL獲取HTML時發生錯誤,便會拋出 IOException,應適當處理。

一旦擁有了一個Document,你就可以使用Document中適當的方法或它父類 Element和Node中的方法來取得相關數據。

public class Element extends Node
public class Document extends Element

很多文章都是說一大堆原理然后放出一個簡單的例子,就跟我上面簡單的打了一個log一樣,然后發現用起來的時候是沒那么簡單的。為了大家能不看文檔也可以直接使用(并且看不懂那一大堆標簽也可以用),我決定再舉一個例子(其實也就是比上面多打幾個log):

下圖紅色框框是我們要獲取的數據,可以看到他們對應的節點就是藍色圓圈里面的<div class="xxx">

Android應用中的html怎么利用jsoup進行解析

廢話不多說上代碼

try {  
  //還是一樣先從一個URL加載一個Document對象。
  Document doc = Jsoup.connect("http://home.meishichina.com/show-top-type-recipe.html").get();

  //“椒麻雞”和它對應的圖片都在<div class="pic">中
  Elements titleAndPic = doc.select("div.pic");
  //使用Element.select(String selector)查找元素,使用Node.attr(String key)方法取得一個屬性的值
  Log.i("mytag", "title:" + titleAndPic.get(1).select("a").attr("title") + "pic:" + titleAndPic.get(1).select("a").select("img").attr("data-src"));

  //所需鏈接在<div class="detail">中的<a>標簽里面
  Elements url = doc.select("div.detail").select("a");
  Log.i("mytag", "url:" + url.get(i).attr("href"));

  //原料在<p class="subcontent">中
  Elements burden = doc.select("p.subcontent");
  //對于一個元素中的文本,可以使用Element.text()方法
  Log.i("mytag", "burden:" + burden.get(1).text());

}catch(Exception e) {  
  Log.i("mytag", e.toString());
}

大功告成,接下來看看log

Android應用中的html怎么利用jsoup進行解析

關于Android應用中的html怎么利用jsoup進行解析問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女