当前位置: 首页 > 文档资料 > Jsoup 中文文档 >

处理URLs

优质
小牛编辑
129浏览
2023-12-01

问题

你有一个包含相对URLs路径的HTML文档,需要将这些相对路径转换成绝对路径的URLs。

方法

  1. 在你解析文档时确保有指定base URI,然后
  2. 使用abs: 属性前缀来取得包含base URI的绝对路径。代码如下: 
Document doc = Jsoup.connect("https://www.xnip.cn").get();

Element link = doc.select("a").first();
String relHref = link.attr("href"); // == "/"
String absHref = link.attr("abs:href"); // "https://www.xnip.cn/"

说明

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

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

因此,在解析HTML文档时,定义base URI非常重要。

如果你不想使用abs: 前缀,还有一个方法能够实现同样的功能Node.absUrl(String key)