Jsoup处理URLs

我们在处理HTML内容时,可能经常会遇到这种问题,需要将html页面里面的链接地址从相对地址转换成绝对地址,如何使用Jsoup来解决这个问题呢?

方法
在你解析文档时确保有指定base URI,然后
使用 abs: 属性前缀来取得包含base URI的绝对路径。

示例

Document doc = Jsoup.connect("http://www.baidu.com/").get();

Element link = doc.select("a").first();
String relHref = link.attr("href"); // == "/"
String absHref = link.attr("abs:href");
// "http://www.baidu.com/gaoji/preferences.html"

解说:

在HTML元素中,URLs经常写成相对于文档位置的相对路径: . 当你使用 Node.attr(String key) 方法来取得a元素的href属性时,它将直接返回在HTML源码中指定定的值。

假如你需要取得一个绝对路径,需要在属性名前加 abs: 前缀。这样就可以返回包含根路径的URL地址attr(“abs:href”)

因此,在解析HTML文档时,定义base URI非常重要。如果你不想使用abs: 前缀,还有一个方法能够实现同样的功能 Node.absUrl(String key)。

发布了236 篇原创文章 · 获赞 87 · 访问量 7216

猜你喜欢

转载自blog.csdn.net/weixin_45743799/article/details/104093054