提取連結的 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,即。包括域和協議。