簡體   English   中英

如何從JSoup中的無序列表獲取img元素的絕對URL

[英]How to get the absolute url of img elements from an unordered list in JSoup

我正在嘗試從無序列表中的圖像屬性中提取絕對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"));
    }
}

您的第一個選擇器錯誤。 使用此獲取所有圖像的列表:

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

這將在HTML中打印所有相對URL。 要獲取絕對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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM