Android用jsoup解析html

轉自:http://www.reibang.com/p/a620a2664f58

1.jsoup介紹

很多時候现恼,我們需要從各種網頁上面抓取數(shù)據凭豪,而jsoup是一款Java 的HTML解析器耙箍,可直接解析某個URL地址沛厨、HTML文本內容。它提供了一套非常省力的API用爪,可通過DOM,CSS以及類似于jQuery的操作方法來取出和操作數(shù)據分冈。

jsoup官方文檔

https://jsoup.org/cookbook/

中文文檔

http://www.open-open.com/jsoup/

2.使用場景

在遇到部分 不完整的還html代碼的時候圾另,因為用Html.fromHtml()函數(shù)衣撬,從這個函數(shù)就可以知道這個是將一段html內容解析成TextView可以展示的內容滞乙,但是 想圖片處理或者其他內容菱魔,并不能顯示完整幅慌,于是可以 用jsoup進行html解析

3.下載jar包

jar包下載地址http://jsoup.org/download

4.這里我們我繼續(xù)使用美食的網頁,然后右鍵查看網頁源碼拓巧,或者按F12椰苟,接下來可以看到一大堆標簽磁餐、

找到需要的肠牲,例如上圖這個“美食天下”幼衰,可以看到“美食天下”是放在以

try {

//從一個URL加載一個Document對象缀雳。

Document doc = Jsoup.connect("http://home.meishichina.com/show-top-type-recipe.html").get();

//選擇“美食天下”所在節(jié)點

Elements elements = doc.select("div.top-bar");

//打印 標簽里面的title

Log.i("mytag",elements.select("a").attr("title"));

}catch(Exception e) {

Log.i("mytag", e.toString());

}

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

Paste_Image.png

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

一旦擁有了一個Document绝葡,你就可以使用Document中適當?shù)姆椒ɑ蛩割?b>Element和Node中的方法來取得相關數(shù)據深碱。

public class Element extends Node

public class Document extends Element

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

下圖紅色框框是我們要獲取的數(shù)據愉阎,可以看到他們對應的節(jié)點就是藍色圓圈里面的

Paste_Image.png

廢話不多說上代碼

try {

//還是一樣先從一個URL加載一個Document對象绞蹦。

Document doc = Jsoup.connect("http://home.meishichina.com/show-top-type-recipe.html").get();

//“椒麻雞”和它對應的圖片都在

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"));

//所需鏈接在

Elements url = doc.select("div.detail").select("a");

Log.i("mytag", "url:" + url.get(i).attr("href"));

//原料在

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

Paste_Image.png

沒有問題!那么教學可以結束了溅呢!

注意:

Jsoup.connect(String url)方法不能運行在主線程澡屡,否則會報NetworkOnMainThreadException

1.下載jar包并丟到libs(或者在gradle)

2.找到心儀的網頁

3.用Jsoup.connect()獲取網頁的document

4.查看網頁源碼,對準你想要的地方咐旧,給他來一個Element.select(String selector)

5.用Node.attr(String key)或者Element.text()方法把數(shù)據抽出來

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末驶鹉,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子铣墨,更是在濱河造成了極大的恐慌室埋,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異词顾,居然都是意外死亡八秃,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門肉盹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來昔驱,“玉大人,你說我怎么就攤上這事上忍≈韪兀” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵窍蓝,是天一觀的道長腋颠。 經常有香客問我,道長吓笙,這世上最難降的妖魔是什么淑玫? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮面睛,結果婚禮上絮蒿,老公的妹妹穿的比我還像新娘。我一直安慰自己叁鉴,他們只是感情好土涝,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著幌墓,像睡著了一般但壮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上常侣,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天蜡饵,我揣著相機與錄音,去河邊找鬼袭祟。 笑死验残,一個胖子當著我的面吹牛,可吹牛的內容都是我干的巾乳。 我是一名探鬼主播您没,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼胆绊!你這毒婦竟也來了氨鹏?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤压状,失蹤者是張志新(化名)和其女友劉穎仆抵,沒想到半個月后跟继,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡镣丑,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年舔糖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片莺匠。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡金吗,死狀恐怖,靈堂內的尸體忽然破棺而出趣竣,到底是詐尸還是另有隱情摇庙,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布遥缕,位于F島的核電站卫袒,受9級特大地震影響,放射性物質發(fā)生泄漏单匣。R本人自食惡果不足惜夕凝,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望封孙。 院中可真熱鬧迹冤,春花似錦讽营、人聲如沸虎忌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽膜蠢。三九已至,卻和暖如春莉兰,著一層夾襖步出監(jiān)牢的瞬間挑围,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工糖荒, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留杉辙,地道東北人。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓捶朵,卻偏偏與公主長得像蜘矢,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子综看,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內容