jsoup 中是否有一种方法可以提取图像绝对 url,就像可以获取链接的绝对 url 一样?
考虑以下图像元素http://www.example.com/
<img src="images/chicken.jpg" width="60px" height="80px">
我想得到http://www.example.com/images/chicken.jpg
。我该怎么办?
jsoup 中是否有一种方法可以提取图像绝对 url,就像可以获取链接的绝对 url 一样?
考虑以下图像元素http://www.example.com/
<img src="images/chicken.jpg" width="60px" height="80px">
我想得到http://www.example.com/images/chicken.jpg
。我该怎么办?
一旦你有了图像元素,例如:
Element image = document.select("img").first();
String url = image.absUrl("src");
// url = http://www.example.com/images/chicken.jpg
或者:
String url = image.attr("abs:src");
Jsoup 在所有节点上都有一个内置的absUrl()方法,以使用节点的基本 URL(可能与从中检索文档的 URL 不同)将属性解析为绝对 URL。
另请参阅使用 URL jsoup 文档。
Document doc = Jsoup.connect("www.abc.com").get();
Elements img = doc.getElementsByTag("img");
for (Element el : img) {
String src = el.absUrl("src");
System.out.println("Image Found!");
System.out.println("src attribute is : "+src);
getImages(src);
}
假设您正在解析http://www.example.com/index.html
.
使用 jsoup 提取 img src,它为您提供:images/chicken.jpg
然后,您可以使用URI类将其解析为绝对路径:
URL url = new URL("http://www.example.com/index.html");
URI uri = url.toURI();
System.out.println(uri.resolve("images/chicken.jpg").toString());
印刷
http://www.example.com/images/chicken.jpg
它可能在 div 类中,因此代码如下所示(仅作为示例)
System.out.println(doc.select("div.ClassName image").attr(src));