node+axios實現(xiàn)下載外網(wǎng)文件到本地
引言
作為一個web前端
開發(fā),對axios
肯定不陌生,但是在前端開發(fā)中,一般是使用axios
來請求后端接口,獲取數(shù)據(jù)。而使用node
+axios
下載網(wǎng)絡文件到本地磁盤可能很少接觸,搜索了很多相關的博客文章,講解的好像都不夠清晰明了,所以本文就記錄一下實踐方法。
初始化項目
npm init -y
安裝axios
npm i -S axios
實現(xiàn)邏輯
根目錄下新建app.js
// app.js const axios = require('axios'); const fs = require('fs'); async function loadImg(imgUrl) { let { data } = await axios({ url: imgUrl, headers: { 'Content-Type': 'multipart/form-data', }, responseType: 'arraybuffer', }) await fs.promises.writeFile(`./01.jpg`, data, 'binary'); } ;(async function () { let url = 'https://tiven.cn/static/img/img-post-08-c1kr9HQ13lTEmcyI_mowX.jpg' console.time('download time:') try { await loadImg(url) console.log('下載成功') } catch (err) { console.log(err) } console.log('') console.timeEnd('download time:') })();
說明:
axios
的參數(shù) headers
中 Content-Type
默認是application/json
,需要設置為 multipart/form-data
;
responseType
默認是json
,需要設置為arraybuffer
(二進制格式);
writeFile
方法的第三個參數(shù)encoding
默認是utf8
,必須設置為binary
(二進制格式),如果不設置,下載的文件打不開。
console.time
和console.timeEnd
是node中提供的計時方法。
執(zhí)行
node app.js
輸出
下載成功
download time:107.866ms
如果想要批量爬取某個網(wǎng)站的圖片或其他文件,可以使用node
爬蟲工具cheerio
來實現(xiàn)。
參考文檔
http://nodejs.cn/api/fs.html#fs_fs_writefile_file_data_options_callback
http://www.axios-js.com/docs/#Request-Config
以上就是node+axios實現(xiàn)下載外網(wǎng)文件到本地的詳細內(nèi)容,更多關于node axios下載外網(wǎng)文件到本地的資料請關注腳本之家其它相關文章!
相關文章
nodejs結合Socket.IO實現(xiàn)websocket即時通訊
websocket 是一種網(wǎng)絡通信協(xié)議,一般用來進行實時通信會使用到。本文主要介紹了nodejs結合Socket.IO實現(xiàn)websocket即時通訊 ,感興趣的可以了解一下2021-11-11node.js中express模塊創(chuàng)建服務器和http模塊客戶端發(fā)請求
今天小編就為大家分享一篇關于node.js中express模塊創(chuàng)建服務器和http模塊客戶端發(fā)請求,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03nodejs構建本地web測試服務器 如何解決訪問靜態(tài)資源問題
這篇文章主要為大家詳細介紹了nodejs構建本地web測試服務器,教大家如何解決訪問靜態(tài)資源問題,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-07-07