日期:2014-05-17  浏览次数:20569 次

jsoup 对 html 文档中链接处理的一个不错的功能

一个 html 文档中经常有很多链接,而这些链接可能包含主机地址,可能不包含,也可能是一个相对的地址,例如

<a href="http://www.oschina.net/p/jsoup">jsoup</a>
<a href="/p/jsoup">jsoup</a>
<a href="../jsoup">jsoup</a>

一般我们从 html 文档中解析出这些链接,最终还要转成第一种形式的链接地址,这个转链接的过程还挺复杂的,需要根据所解析的文档url地址来计算。

可如果使用 jsoup 的话,就非常简单了,jsoup 的 attr 方法提供了一个 abs: 的操作,请看下面的代码:
?

折叠?Java 代码复制内容到剪贴板
  1. URL?url?=?new?URL("http://www.ai-java.com/"); ??
  2. Document?doc?=?Jsoup.parse(url,?3*1000); ??
  3. ??
  4. Element?link?=?doc.select("a").first(); ??
  5. String?relHref?=?link.attr("href");?//?==?"/" ??
  6. String?absHref?=?link.attr("abs:href");?//?"http://www.ai-java.com/"??

?