Jsoup在html页面中解析特定图像

时间:2018-03-27 15:34:28

标签: java android jsoup

我想从html页面解析一个特定的图像。

<img id="icImg" class="img img500" itemprop="image" src="https://i.ebayimg.com/images/g/p4cAAOSwXSNann-Z/s-l500.jpg" style="" onload="picTimer=new Date().getTime();" clk="0" alt="Sigaretta-elettronica-liquid-pronto-per-l-039-uso-svapo-100-ml-GUSTI-A-SCELTA" mskuskip="false">

其中“icImg”是我要解析的id。 有没有办法获得id icImg的img?因为.first方法只获取html页面中的第一个图像 我的代码是:

public synchronized void getImg(){
new Thread(new Runnable() {
    @Override
    public void run() {
        try {
            while((linkurl.isEmpty())){
                Thread.sleep(1000);
            }
            sem.acquire();
            Document doc = Jsoup.connect(linkurl).get();
            Element image = doc.select("img").first();
            String imgSrc = image.absUrl("src");
            InputStream in = new URL(imgSrc).openStream();
            bitmap = BitmapFactory.decodeStream(in);
            sem.release();

        }catch (IOException e){
            e.printStackTrace();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        runOnUiThread(new Runnable() {
            @Override
            public void run() {
                immagine.setImageBitmap(bitmap);
            }
        });
    }


}).start();

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

您可以使用#作为

传递ID和标记名称
Element image = doc.select("img#icImg").first();
// fetch all image elements tag with id, fetch the first element
String imgSrc = image.absUrl("src");