node+axios实现下载外网文件到本地
引言
作为一个web前端开发,对axios肯定不陌生,但是在前端开发中,一般是使用axios来请求后端接口,获取数据。而使用node+axios下载网络文件到本地磁盘可能很少接触,搜索了很多相关的博客文章,讲解的好像都不够清晰明了,所以本文就记录一下实践方法。
初始化项目
npm init -y
安装axios
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 = '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 的参数 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下载外网文件到本地的资料请关注脚本之家其它相关文章!
相关文章
3分钟快速搭建nodejs本地服务器方法运行测试html/js
本篇文章主要介绍了3分钟快速搭建nodejs本地服务器方法运行测试html/js,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-04-04
Node.js npm 安装过程中EBUSY错误的分析与解决方案
使用 npm 进行安装是一个非常常见的操作,npm在安装过程中可能出现EBUSY错误,本文就来介绍一下如何解决,具有一定的参考价值,感兴趣的可以了解一下2025-01-01
从零开始学习Node.js系列教程三:图片上传和显示方法示例
这篇文章主要介绍了Node.js图片上传和显示方法,结合实例形式分析了nodejs基于http传输图片文件及显示图片的相关实现步骤与操作技巧,需要的朋友可以参考下2017-04-04


最新评论