本篇文章給大家分享的是有關(guān)如何使用Go語言下載網(wǎng)絡(luò)圖片,小編覺得挺實用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
使用GoLang的http.Get()方法
// 圖片以花瓣網(wǎng)的圖片為例 imgUrl := "http://hbimg.b0.upaiyun.com/32f065b3afb3fb36b75a5cbc90051b1050e1e6b6e199-Ml6q9F_fw320" res, err := http.Get(imgUrl) if err != nil { fmt.Println("A error occurred!") return } // defer后的為延時操作,通常用來釋放相關(guān)變量 defer res.Body.Close()
然后獲得get請求響應(yīng)的reader對象
// 獲得get請求響應(yīng)的reader對象 reader := bufio.NewReaderSize(res.Body, 32 * 1024)
上面獲取到了輸入流的reader對象, 下面來獲取本地文件的輸出流的writer對象
imgPath := "C:\\Users\\Asche\\go\\src\\GoSpiderTest\\" // 根據(jù)圖片url獲取其文件名 fileName := path.Base(imgUrl) file, err := os.Create(imgPath + fileName) if err != nil { panic(err) } // 獲得文件的writer對象 writer := bufio.NewWriter(file)
好了, reader和writer對象都得到了,然后在讀取寫入。
如果嫌麻煩的話,可以直接copy:
written, _ := io.Copy(writer, reader) // 輸出文件字節(jié)大小 fmt.Printf("Total length: %d", written)
或則手動讀取和寫入
bytes := make([]byte, 32 * 1024) for { len, err := reader.Read(bytes) if len < 0 || err != nil{ return } // 注意這里byte數(shù)組后的[0:len],不然可能會導(dǎo)致寫入多余的數(shù)據(jù) _, _ = writer.Write(bytes[0:len]) fmt.Printf("%d ", len) }
ok,下載完成。
下面貼上完整的代碼(讀取寫入采用的方法一)
package main import ( "bufio" "fmt" "io" "net/http" "os" "path" ) func main() { imgPath := "C:\\Users\\Asche\\go\\src\\GoSpiderTest\\" imgUrl := "http://hbimg.b0.upaiyun.com/32f065b3afb3fb36b75a5cbc90051b1050e1e6b6e199-Ml6q9F_fw320" fileName := path.Base(imgUrl) res, err := http.Get(imgUrl) if err != nil { fmt.Println("A error occurred!") return } defer res.Body.Close() // 獲得get請求響應(yīng)的reader對象 reader := bufio.NewReaderSize(res.Body, 32 * 1024) file, err := os.Create(imgPath + fileName) if err != nil { panic(err) } // 獲得文件的writer對象 writer := bufio.NewWriter(file) written, _ := io.Copy(writer, reader) fmt.Printf("Total length: %d", written) }
以上就是如何使用Go語言下載網(wǎng)絡(luò)圖片,小編相信有部分知識點(diǎn)可能是我們?nèi)粘9ぷ鲿姷交蛴玫降摹OM隳芡ㄟ^這篇文章學(xué)到更多知識。更多詳情敬請關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計公司行業(yè)資訊頻道。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前標(biāo)題:如何使用Go語言下載網(wǎng)絡(luò)圖片-創(chuàng)新互聯(lián)
網(wǎng)頁URL:http://aaarwkj.com/article2/ihcic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、微信小程序、網(wǎng)站營銷、外貿(mào)建站、網(wǎng)站設(shè)計、App開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容