提取連結的 URL 和標題
Jsoup 可用於從網頁輕鬆提取所有連結。在這種情況下,我們可以使用 Jsoup 僅提取我們想要的特定連結,這裡是頁面上 h3
標題中的連結。我們還可以獲得連結的文字。
Document doc = Jsoup.connect("http://stackoverflow.com").userAgent("Mozilla").get();
for (Element e: doc.select("a.question-hyperlink")) {
System.out.println(e.attr("abs:href"));
System.out.println(e.text());
System.out.println();
}
這給出了以下輸出:
http://stackoverflow.com/questions/12920296/past-5-week-calculation-in-webi-bo-4-0
Past 5 week calculation in WEBI (BO 4.0)?
http://stackoverflow.com/questions/36303701/how-to-get-information-about-the-visualized-elements-in-listview
How to get information about the visualized elements in listview?
[...]
這裡發生了什麼事:
-
首先,我們從指定的 URL 獲取 HTML 文件。此程式碼還將請求的使用者代理標頭設定為
Mozilla
,以便網站提供通常用於瀏覽器的頁面。 -
然後,使用
select(...)
和 for 迴圈來獲取 Stack Overflow 問題的所有連結,在這種情況下,連結具有類question-hyperlink
。 -
用
.text()
列印每個連結的文字,用attr("abs:href")
列印連結的 href。在這種情況下,我們使用abs:
來獲取絕對 URL,即。包括域和協議。