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