Android studio玩家無需下載即可將jar包添加到Gradle中。
依賴性{未定義
編譯“org.jsoup:jsoup:1.9.2”
}復制代碼
然後,找到自己喜歡的網頁抓取數據。
這裏我們繼續使用美食網頁,然後右鍵查看網頁源代碼,或者按F12,然後就可以看到很多標簽:
粘貼_圖像. png
找到妳需要的,比如上面的“美食世界”,妳可以看到“美食世界”被放置在
對於節點,要得到這個“美食世界”,代碼可以這樣寫:
嘗試{undefined
//從URL加載文檔對象。
document doc = jsoup . connect("/show-top-type-recipe . html ")。get();
//選擇“美食世界”節點
Elements元素= doc . select(" div . top-bar ");
//打印A標簽中的標題。
Log.i("mytag ",elements.select("a ")。attr(" title "));
}catch(異常e) {undefined
Log.i("mytag ",e . tostring());
}復制代碼
接下來,看看打印的結果:
粘貼_圖像. png
Jsoup.connect(String url)方法從url加載文檔對象。如果從這個URL獲取HTML時出現錯誤,將會拋出IOException,並且應該進行適當的處理。
壹旦有了文檔,就可以使用文檔中適當的方法或其父類元素和節點中的方法來獲取相關數據。
公共類元素擴展節點
公共類文檔擴展元素復制代碼
很多文章講了壹大堆原理然後放出壹個簡單的例子,就像我簡單的在上面打了壹個日誌,然後發現用起來沒那麽簡單。為了讓妳不用看文檔就能直接使用(也不用看很多標簽就能使用),我決定再舉壹個例子(其實就是比上面多幾個日誌):
下面的紅框是我們要獲取的數據,我們可以看到它們對應的節點在藍圈裏。
粘貼_圖像. png
不廢話,代碼。
嘗試{undefined
//和以前壹樣,從URL加載壹個文檔對象。
document doc = jsoup . connect("/show-top-type-recipe . html ")。get();
//“椒麻雞”及其對應圖片都是抄襲代碼。
中間
elements titleAndPic = doc . select(" div . pic ");
//使用Element.select(字符串選擇器)查找元素,使用Node.attr(字符串鍵)獲取屬性的值。
Log.i("mytag "," title:"+titleandpic . get(1)。選擇(“a”)。attr(" title ")+" pic:"+titleandpic . get(1)。選擇(“a”)。選擇(“img”)。attr(" data-src "));
//所需的鏈接在
中的a標記內
elements URL = doc . select(" div . detail ")。選擇(" a ");
Log.i("mytag "," url:" + url.get(i))。attr(" href "));
//原材料在
中間
要素間接費用= doc . select(" p . subcontent ");
//對於元素中的文本,可以使用Element.text()方法。
Log.i("mytag "," burden:" + burden.get(1)。text());
}catch(異常e) {undefined
Log.i("mytag ",e . tostring());
}
妳完了。讓我們看看日誌。
粘貼_圖像. png
沒問題!然後教學就可以結束了!
註意:
Jsoup.connect(String url)方法不能在主線程中運行,否則會報告NetworkOnMainThreadException。