Jsoup:如何摆脱这个简单的img选择噩梦?

时间:2016-04-11 14:48:42

标签: android jsoup

我正在使用jsoup lib 所以我想从这个网站上取下img here

所以我使用了select元素,我的代码就像那样

Elements news2 = document.select("div.contentcolumn");
// Elements title2 = news2.select("div.catitems");
Log.d("MainActivity", "This is news = " + title);

for (Element el : news2) {
     news_object = new item();
     news_object.setTitle(el.select("h1").text());
     news_object.setauther(el.select("a").attr("abs:href"));
     news_object.setimg(el.select("ImageArea").attr("abs:src"));

     Log.d("newsdetail", "humam" + news_object.getimg());

这是网站的源代码

<div id="ImageArea">
     <a href="/filestorage/contentfiles/2016/04_16/090416102307_140_1.jpg" 
        target="_blank">
        <img src="/filestorage/contentfiles/2016/04_16/090416102307_140_1.jpg"
             alt="المالكي: الإصلاح محاولة لإفشال المشروع الإسلامي وضرب المتدينين" 
             style="max-width:620px;">        
     </a>
</div>

我想选择img并将其放入视图img并选择文本。

1 个答案:

答案 0 :(得分:0)

问题在于此代码行:el.select("ImageArea").attr("abs:src")。 让我们看看会发生什么:

el.select("ImageArea") // Here we select an element with tag name ImageArea
.attr("abs:src")       

ImageArea是包含包含目标图像的锚点的div的id。

请改为尝试:

news_object.setimg(el.select("#ImageArea img").attr("abs:src"));

如果ImageArea元素可能没有img,请使用以下代码:

Element img = el.select("#ImageArea img").first();
if ( img != null ) {
    news_object.setimg(img.attr("abs:src"));
} else {
    // ...
}