无法从网址获取图片

时间:2014-10-08 09:33:44

标签: java jsoup

我正在尝试从宽度和高度> 249的网址中获取图片 我尝试从此网址http://imgur.com/gallery/zwxxH8T获取图片 'http://www.wallpaper.com/'从几个网址中获取图片,但为什么这不是从所有给定网址获取图片。

我正在使用以下代码

public static void main(String[] args) {
        try {
            String path = "http://imgur.com/gallery/zwxxH8T";
            System.out.println("Fetching %s..." + path);
            try {
                URL url = new URL(path);
            } catch (MalformedURLException e) {
                System.out.println("MalformedURLException");

            }
            Document doc = Jsoup.connect(path).timeout(5000).get();
            Elements media = doc.select("[src]");
            int width = 0;
            int height = 0;
            for (Element src : media) {
                if (src.tagName().equals("img")) {
                    try {
                        width = Integer.parseInt(src.attr("width"));
                        height = Integer.parseInt(src.attr("height"));
                    } catch (NumberFormatException ex) {
                    }
                    if ((width > 249) && (height > 249)) {
                        System.out.println("Path:  " + src.attr("abs:src")
                                + "\n wd " + src.attr("width") + " hi " + src.attr("height"));

                    }
                }
            }
        } catch (org.jsoup.UnsupportedMimeTypeException e) {
            System.out.println("Exception " + e);

        } catch (IOException e) {
            System.out.println("Exception " + e);
        }
    }

2 个答案:

答案 0 :(得分:1)

在给定的网址http://imgur.com/gallery/zwxxH8T中,没有<img>包含宽度和高度属性。

因此widthheight始终等于0,if ((width > 249) && (height > 249))始终为false,未找到图像。

答案 1 :(得分:0)

如果您只想将src放到主图像上,而不是寻找特定的大小(假设它们没有设置),您可以创建类似div.image img的CSS。这会查找<div class="image"><img ...>,它与其图像匹配。

您也不需要所有循环代码。

Document doc = Jsoup.get(url).timeout(t).get();
Element image = doc.select("div.image img").first();
String source = image.attr("abs:src");

http://try.jsoup.org/~YV4U6fB6yeR2eScoXgjzKjynxh0

的示例