我正在尝试从无序列表中的图像属性中提取绝对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"));
}
}
答案 0 :(得分:0)
您的第一个选择器错误。使用它来获取所有图像的列表:
Elements images = doc.select("ul.bjqs > li > img");
for (Element e : images) {
System.out.println(e.attr("src"));
}
这将在HTML中打印所有相对URL。要获取绝对URL,可以在基本URL中使用URI.resolve()
:
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。