Jsoup: как получить абсолютный URL-адрес изображения?
Есть ли способ в jsoup извлечь абсолютный URL-адрес изображения, как можно получить абсолютный URL-адрес ссылки?
Рассмотрим следующий элемент изображения, найденный в http://www.example.com/
<img src="images/chicken.jpg" width="60px" height="80px">
Я хотел бы получить http://www.example.com/images/chicken.jpg
. Что мне делать?
Ответы
Ответ 1
Как только у вас есть элемент изображения, например:
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-адрес node (который может отличаться от URL-адреса, из которого был извлечен документ).
См. также Работа с URL-адресами Документация jsoup.
Ответ 2
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);
}
Ответ 3
Да jsoup не заботится, является ли url гиперссылкой или источником изображения. Вы можете использовать метод absUrl, чтобы получить абсолютный URL-адрес. Процедура использования absUrl показана в http://preciselyconcise.com/apis_and_installations/jsoup/i_absoulute_url.php
Ответ 4
Предположим, что вы разбираете 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
Ответ 5
Он может быть внутри класса div, поэтому код будет таким (только в качестве примера)
System.out.println(doc.select("div.ClassName image").attr(src));