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

红薯 发布于 2010/08/04 20:05
阅读 1K+
收藏 4

一个 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: 的操作,请看下面的代码:

URL url = new URL("http://www.oschina.net/");
Document doc = Jsoup.parse(url, 3*1000);

Element link = doc.select("a").first();
String relHref = link.attr("href"); // == "/"
String absHref = link.attr("abs:href"); // "http://www.oschina.net/"

So Cool!

 

加载中
0
李剑
李剑

喜欢这样的方式.呵呵.不错.支持.

0
JillLiu
JillLiu

这个一定在实际项目中不能少啊

0
akunamotata1
akunamotata1

Make sure you specify a base URI when parsing the document (which is implicit when loading from a URL)

这句话的意思是需要在头部添加"<base href='...'>"吗?

0
水牛叔叔
水牛叔叔
我居然没发现这么好的功能,还费劲巴拉的自己写呢
返回顶部
顶部