使用java開源項目Jsoup抓取遠程圖片

ecfc 9年前發布 | 4K 次閱讀 Java

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.baiduhome.net";

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

}

} </pre>

 本文由用戶 ecfc 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!