2014-02-23 34 views
0

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

回答

2

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

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(); 

    } 

當你的圖像保存在磁盤上使用您可以findout分機這樣的:

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

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

我不確定如何直接從URL採取延長

+0

您的意思是使用el.attr(「SRC」),而不是absUrl? – Aion