无法获取img标签

时间:2013-04-23 06:32:12

标签: java html jsoup

我有一个问题。当我尝试使用Java中的Jsoup从网页获取图像时。 这是代码:

    String link = "http://truyentranhtuan.com/detective-conan/856/doc-truyen/";
    Document docs = Jsoup.connect(link).timeout(60000).get();
    Elements comics = docs.select("#hienthitruyen img");
    System.out.println(comics.size());
    for (Element comic : comics) {
        int i = 0;
        System.out.println(comic);
        String linkImage = comic.attr("src");
        if (!"".equals(linkImage)) {
            URL url = new URL(linkImage);
            BufferedImage image = ImageIO.read(url);
            ImageIO.write(image, "jpg", new File(i + ".jpg"));
            i++;
        }
    }

问题是我无法在此网页中获得任何img标记。 Elements的大小始终为零。 但是当我在这个网页上查看源码时,img标签总是在那里。

1 个答案:

答案 0 :(得分:1)

如果你看一下真正的源代码,而不是DOM结构(例如,保存HTML页面并在记事本中打开它),你会发现那里没有img标签。它们都是通过Javascript动态填充的。

现在的问题是Jsoup并不意味着执行Javascript,因此在Javascript修改(填充图像)之前,你只能解析原始的DOM结构。 要做你想做的事,你可以使用HTMLUnit来执行大部分的Javascript。