Есть ли в jsoup способ извлечь абсолютный URL-адрес изображения, так же, как можно получить абсолютный URL-адрес ссылки?
Рассмотрим следующий элемент изображения, найденный в http://www.example.com/
http://www.example.com/
<img src="images/chicken.jpg" width="60px" height="80px">
Я бы хотел получить http://www.example.com/images/chicken.jpg. Что мне делать?
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.
http://www.example.com/index.html
Используйте jsoup, чтобы извлечь img src, который дает вам: images/chicken.jpg
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());
отпечатки
Возможно, он внутри класса div, поэтому код будет таким (только для примера)
System.out.println(doc.select("div.ClassName image").attr(src));