簡體   English   中英

使用JSoup從HTML中提取圖像類型

[英]Extract image type from HTML using JSoup

如何使用JSoup從URL中提取圖像類型? 我正在解析一個html,它可以發送圖像url(使用asbUrl())。 但是,我需要測試它的類型。 現在它使一切都成為一個.png,這顯然不適用於大多數類型。 有任何想法嗎?

首先將圖像保存在文件中。 這里有一些代碼可以幫助你做到這一點:

public class DownloadImages {

    //The url of the website. This is just an example
    private static final String webSiteURL = "http://www.supercars.net/gallery/119513/2841/5.html";

    //The path of the folder that you want to save the images to
    private static final String folderPath = "<FOLDER PATH>";

    public static void main(String[] args) {

        try {

            //Connect to the website and get the html
            Document doc = Jsoup.connect(webSiteURL).get();

            //Get all elements with img tag ,
            Elements img = doc.getElementsByTag("img");

            for (Element el : img) {

                //for each element get the srs url
                String src = el.absUrl("src");

                System.out.println("Image Found!");
                System.out.println("src attribute is : "+src);

                getImages(src);

            }

        } catch (IOException ex) {
            System.err.println("There was an error");
            Logger.getLogger(DownloadImages.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    private static void getImages(String src) throws IOException {

        String folder = null;

        //Exctract the name of the image from the src attribute
        int indexname = src.lastIndexOf("/");

        if (indexname == src.length()) {
            src = src.substring(1, indexname);
        }

        indexname = src.lastIndexOf("/");
        String name = src.substring(indexname, src.length());

        System.out.println(name);

        //Open a URL Stream
        URL url = new URL(src);
        InputStream in = url.openStream();

        OutputStream out = new BufferedOutputStream(new FileOutputStream( folderPath+ name));

        for (int b; (b = in.read()) != -1;) {
            out.write(b);
        }
        out.close();
        in.close();

    }

當您將圖像保存在磁盤上時,您可以找到他們的擴展名,如下所示:

String extension = FilenameUtils.getExtension("/path/to/file/image.png");

完成后,也使用Java刪除文件。

我不確定如何直接從URL獲取擴展名

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM