Java 獲取網站圖片的示例代碼

前提

最近我的的朋友瀏覽一些網站,看到好看的圖片,問我有沒有辦法不用手動一張一張保存圖片!
我說用Jsoup丫!

測試網站

在這裡插入圖片描述

打開開發者模式(F12),找到對應圖片的鏈接,在互聯網中,每一張圖片就是一個鏈接!

在這裡插入圖片描述

一、新建Maven項目,導入Jsoup環境依賴

<groupId>org.jsoup</groupId>
   <artifactId>jsoup</artifactId>
   <version>1.11.2</version>
</dependency>

二、代碼編寫

public class JsoupTest {
    public static void main(String[] args) throws IOException {
    	// 爬蟲的網站
        String url="https://mp.weixin.qq.com/s/caU6d6ebpsLVJaf-7gMjtg";
        // 獲得網頁的document對象
        Document document = Jsoup.parse(new URL(url), 10000);
        // 爬取含圖片的代碼部分
        Element content = document.getElementById("js_content");
        // 獲取img標簽代碼  這是個集合
        Elements imgs = content.getElementsByTag("img");
        // 命名圖片的id
        int id=0;
        for (Element img : imgs) {
            // 獲取具體的圖片
            String pic = img.attr("data-src");
            URL target = new URL(pic);
            // 獲取連接對象
            URLConnection urlConnection = target.openConnection();
            // 獲取輸入流,用來讀取圖片信息
            InputStream inputStream = urlConnection.getInputStream();
            // 獲取輸出流  輸出地址+文件名
            id++;
            FileOutputStream fileOutputStream = new FileOutputStream("E:\\JsoupPic\\" + id + ".png");

            int len=0;
            // 設置一個緩存區
            byte[] buffer = new byte[1024 * 1024];
            // 寫出圖片到E:\JsoupPic中,  輸入流讀數據到緩沖區中,並賦給len
            while ((len=inputStream.read(buffer))>0){
                // 參數一:圖片數據  參數二:起始長度  參數三:終止長度
                fileOutputStream.write(buffer, 0, len);
            }
            System.out.println(id+".png下載完畢");
            // 關閉輸入輸出流 最後創建先關閉
            fileOutputStream.close();
            inputStream.close();
        }

    }
}

成果:

在這裡插入圖片描述

心得:

1、網絡上的每一張圖片都是一個鏈接
2、我們知道整個網頁就是一個文檔數,先找到包含圖片的父id,再通過getElementsByTag()獲取到圖片的標簽,通過F12,我們知道圖片的鏈接是存在img標簽裡面的 data-src屬性中
3、通過標簽的data-src屬性,就獲取到具體圖片的鏈接
4、通過輸入輸出流,把圖片保存在本地中!

到此這篇關於Java 獲取網站圖片的示例代碼的文章就介紹到這瞭,更多相關Java 獲取網站圖片內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: