2021年12月20日 星期一

【Let's Go 爬】用Go爬圖第一步~~爬圖基礎:如何將網路圖片下載

這次依然是將之前python下載圖片的操作,試著使用Go來玩玩看!

不得不說啊~~Go果然是為著網路而生!

從上一篇用Go擷取網路新聞的操作,到這篇的網路圖片下載操作~都讓人感到一陣順心如意啊~~哈!

另外~~透過Go mod的模組管理機制,在編寫程式過程,Go也會自動引入(import)相關的模組~相當smart、便利!

這次依然示範下載google Doodle 網站中的:

https://www.google.com/logos/doodles/2021/first-day-of-school-2021-january-04-6753651837108833-2x.png

這個圖檔,作為練習範例!

好囉~~~一樣直接上程式碼🐎囉......

package main

import (
	"fmt"
	"io/ioutil"
	"net/http"
	"os"
	"strings"
)

func main() {
	url := "https://www.google.com/logos/doodles/2021/first-day-of-school-2021-january-04-6753651837108833-2x.png"

	path := strings.Split(url, "/")
	name := path[len(path)-1]

	out, _ := os.Create(name)
	defer out.Close()

	r, _ := http.Get(url)
	defer r.Body.Close()

	pic, _ := ioutil.ReadAll(r.Body)
	io.Copy(out, bytes.NewReader(pic))
	//out.Write(pic)
	fmt.Printf("檔案:%s下載完成!", name)
}

使用起來算是相當便捷!

解讀一下程式,基本上一樣是透過幾個步驟~~~

1.解析獲取圖檔名:14~15行

2.創建存檔檔名(以原檔名進行下載保存):17行

3.獲取圖檔資訊:20~23行

4.寫入檔案:24行(25行是寫入檔案另一種方法)

練習、玩玩也記錄學習歷程~~增加學習玩樂動力!Go~~~



沒有留言:

張貼留言