目录引言初始化项目安装axiOS实现逻辑执行引言 作为一个web前端开发,对axios肯定不陌生,但是在前端开发中,一般是使用axios来请求后端接口,获取数据。而使用node+ax
作为一个web前端
开发,对axios
肯定不陌生,但是在前端开发中,一般是使用axios
来请求后端接口,获取数据。而使用node
+axios
下载网络文件到本地磁盘可能很少接触,搜索了很多相关的博客文章,讲解的好像都不够清晰明了,所以本文就记录一下实践方法。
npm init -y
npm i -S axios
根目录下新建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 = '/file/imgs/upload/202211/13/lx5ul2bu0w2.jpg'
console.time('download time:')
try {
await loadImg(url)
console.log('下载成功')
} catch (err) {
console.log(err)
}
console.log('')
console.timeEnd('download time:')
})();
说明:
axios
的参数 headers
中 Content-Type
默认是application/JSON
,需要设置为 multipart/form-data
;
responseType
默认是json
,需要设置为arraybuffer
(二进制格式);
writeFile
方法的第三个参数encoding
默认是utf8
,必须设置为binary
(二进制格式),如果不设置,下载的文件打不开。
console.time
和console.timeEnd
是node中提供的计时方法。
node app.js
输出
下载成功
download time:107.866ms
如果想要批量爬取某个网站的图片或其他文件,可以使用node
爬虫工具cheerio
来实现。
参考文档
Http://nodejs.cn/api/fs.html#fs_fs_writefile_file_data_options_callback
http://www.axios-js.com/docs/#Request-Config
以上就是node+axios实现下载外网文件到本地的详细内容,更多关于node axios下载外网文件到本地的资料请关注编程网其它相关文章!
--结束END--
本文标题: node+axios实现下载外网文件到本地
本文链接: https://lsjlt.com/news/152806.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-12
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
2023-05-20
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0