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!
推薦閱讀:
- java爬蟲Jsoup主要類及功能使用詳解
- Java IO之字節輸入輸出流詳解
- java爬蟲jsoup解析HTML的工具學習
- 使用maven實現有關Jsoup簡單爬蟲的步驟
- Java FileInputStream與FileOutputStream使用詳解