使用java开源项目Jsoup抓取远程图片详解编程语言

package com.open; 
 
import java.io.*; 
import java.net.URL; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import java.io.*; 
import java.util.logging.Level; 
import java.util.logging.Logger; 
import org.jsoup.Jsoup; 
 
import org.jsoup.nodes.Attributes; 
import org.jsoup.nodes.Document; 
import org.jsoup.nodes.Element; 
import org.jsoup.select.Elements; 
import java.io.IOException; 
import java.net.URL; 
 
public class DownloadImages { 
 
    //The url of the website. This is just an example 
    private static final String webSiteURL = "http://www.open-open.com"; 
 
    //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(); 
 
    } 
} 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/10985.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论