Как получить абсолютный URL-адрес элементов img из неупорядоченного списка в JSoup - PullRequest
1 голос
/ 10 июня 2019

Я пытаюсь извлечь абсолютные URL из атрибутов изображения в неупорядоченном списке.Но я не могу этого сделать.Мне нужны только ссылки на изображения в неупорядоченном списке, а не весь сайт.

<ul class="bjqs">
    <li><img src="images/slider_img/8.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/aeration-1.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/DesalinationIII-1.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/Energy-the-global-view-1.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/Exergy-1.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/Exergy-2.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/Medical-Engg-1.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/Phovoltaic-Systems-1.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/Phovoltaic-Systems-2.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/solar-1.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/solar-2.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/solar-3.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/solar-4.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/solar-5.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/solar-6.jpg" title="Automatically generated caption" /></li>
    <li><img src="images/slider_img/solar-7.jpg" title="Automatically generated caption" /></li>
</ul>

Ниже приведено то, что я пробовал до сих пор.Но это только дает мне первую ссылку.Не остальные.

public static void main(String[] args) throws IOException {
    Document doc = Jsoup.connect("example.org").get();

    Elements ec = doc.select("ul.bjqs");

    for (Element e : ec) {
        System.out.println(e.select("li").select("img").attr("src"));
    }
}

1 Ответ

0 голосов
/ 10 июня 2019

Ваш первый селектор неверен.Используйте это, чтобы получить список всех изображений:

Elements images = doc.select("ul.bjqs > li > img");
for (Element e : images) {
    System.out.println(e.attr("src"));
}

Это напечатает все относительные URL в вашем HTML.Чтобы получить абсолютные URL-адреса, вы можете использовать URI.resolve() с базовым URL-адресом:

String url = "http://example.org/";
Document doc = Jsoup.connect(url).get();

URI uri = new URI(url);
Elements images = doc.select("ul.bjqs > li > img");
for (Element e : images) {
    String relative = e.attr("src");
    System.out.println(uri.resolve(relative));
}

. При этом будут напечатаны абсолютные URL-адреса изображений.

...