提取链接的 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,即。包括域和协议。