Jsoup: как получить абсолютный URL изображения? - PullRequest
36 голосов
/ 02 февраля 2011

Есть ли в jsoup способ извлечь абсолютный URL-адрес изображения, так же, как можно получить абсолютный URL-адрес ссылки?

Рассмотрим следующий элемент изображения, найденный в http://www.example.com/

<img src="images/chicken.jpg" width="60px" height="80px">

Я бы хотел получить http://www.example.com/images/chicken.jpg. Что мне делать?

Ответы [ 4 ]

66 голосов
/ 03 февраля 2011

Если у вас есть элемент изображения, например:

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.

8 голосов
/ 07 августа 2013
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);
}
2 голосов
/ 02 февраля 2011

Предположим, вы анализируете 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
0 голосов
/ 06 ноября 2017

Возможно, он внутри класса div, поэтому код будет таким (только для примера)

System.out.println(doc.select("div.ClassName image").attr(src));
...