node+axios實(shí)現(xiàn)下載外網(wǎng)文件到本地
引言
作為一個(gè)web前端
開(kāi)發(fā),對(duì)axios
肯定不陌生,但是在前端開(kāi)發(fā)中,一般是使用axios
來(lái)請(qǐng)求后端接口,獲取數(shù)據(jù)。而使用node
+axios
下載網(wǎng)絡(luò)文件到本地磁盤(pán)可能很少接觸,搜索了很多相關(guān)的博客文章,講解的好像都不夠清晰明了,所以本文就記錄一下實(shí)踐方法。
初始化項(xiàng)目
npm init -y
安裝axios
npm i -S axios
實(shí)現(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:') })();
說(shuō)明:
axios
的參數(shù) headers
中 Content-Type
默認(rèn)是application/json
,需要設(shè)置為 multipart/form-data
;
responseType
默認(rèn)是json
,需要設(shè)置為arraybuffer
(二進(jìn)制格式);
writeFile
方法的第三個(gè)參數(shù)encoding
默認(rèn)是utf8
,必須設(shè)置為binary
(二進(jìn)制格式),如果不設(shè)置,下載的文件打不開(kāi)。
console.time
和console.timeEnd
是node中提供的計(jì)時(shí)方法。
執(zhí)行
node app.js
輸出
下載成功
download time:107.866ms
如果想要批量爬取某個(gè)網(wǎng)站的圖片或其他文件,可以使用node
爬蟲(chóng)工具cheerio
來(lái)實(shí)現(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實(shí)現(xiàn)下載外網(wǎng)文件到本地的詳細(xì)內(nèi)容,更多關(guān)于node axios下載外網(wǎng)文件到本地的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
- nginx利用referer指令實(shí)現(xiàn)防盜鏈配置
- Nginx防盜鏈的配置方法
- Nginx服務(wù)器下防盜鏈的方法介紹
- Nginx圖片防盜鏈配置實(shí)例
- 配置Nginx的防盜鏈的操作方法
- nginx配置防盜鏈的三種實(shí)現(xiàn)方式總結(jié)
- nodejs連接ftp上傳下載實(shí)現(xiàn)方法詳解【附:踩坑記錄】
- nodejs實(shí)現(xiàn)生成文件并在前端下載
- Node.js實(shí)現(xiàn)下載文件的兩種實(shí)用方式
- Node.js實(shí)現(xiàn)批量下載圖片簡(jiǎn)單操作示例
- node.js突破nginx防盜鏈機(jī)制,下載圖片案例分析
相關(guān)文章
node-sass安裝失敗解決方法總結(jié)(終有一款適合你)
node-sass是我們開(kāi)發(fā)中很常見(jiàn)的依賴(lài)包,也是安裝時(shí)間冗長(zhǎng)和最常見(jiàn)到報(bào)錯(cuò)的依賴(lài),下面這篇文章主要給大家介紹了關(guān)于node-sass安裝失敗解決方法的相關(guān)資料,需要的朋友可以參考下2022-11-11nodejs結(jié)合Socket.IO實(shí)現(xiàn)websocket即時(shí)通訊
websocket 是一種網(wǎng)絡(luò)通信協(xié)議,一般用來(lái)進(jìn)行實(shí)時(shí)通信會(huì)使用到。本文主要介紹了nodejs結(jié)合Socket.IO實(shí)現(xiàn)websocket即時(shí)通訊 ,感興趣的可以了解一下2021-11-11Node中對(duì)非阻塞I/O、事件循環(huán)的知識(shí)點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是一篇關(guān)于Node中對(duì)非阻塞I/O、事件循環(huán)的知識(shí)點(diǎn)分享內(nèi)容,需要的朋友們可以參考下。2020-01-01node.js中express模塊創(chuàng)建服務(wù)器和http模塊客戶(hù)端發(fā)請(qǐng)求
今天小編就為大家分享一篇關(guān)于node.js中express模塊創(chuàng)建服務(wù)器和http模塊客戶(hù)端發(fā)請(qǐng)求,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03koa2服務(wù)配置SSL的實(shí)現(xiàn)方法
這篇文章主要介紹了koa2服務(wù)配置SSL的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05nodejs構(gòu)建本地web測(cè)試服務(wù)器 如何解決訪(fǎng)問(wèn)靜態(tài)資源問(wèn)題
這篇文章主要為大家詳細(xì)介紹了nodejs構(gòu)建本地web測(cè)試服務(wù)器,教大家如何解決訪(fǎng)問(wèn)靜態(tài)資源問(wèn)題,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07