node+axios实现下载外网文件到本地
作者:天问 时间:2024-05-05 09:20:48
引言
作为一个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
来源:https://tiven.cn/p/9b735250/
标签:node,axios,文件下载,外网,本地
0
投稿
猜你喜欢
Python使用matplotlib模块绘制图像并设置标题与坐标轴等信息示例
2022-11-08 14:50:22
java使用dbcp2数据库连接池
2024-01-29 05:33:42
python基于右递归解决八皇后问题的方法
2021-01-12 21:02:38
python如何写出表白程序
2023-12-19 17:10:56
Python Django2.0集成Celery4.1教程
2023-10-17 21:28:52
MySQL修改默认引擎和字符集详情
2024-01-14 21:37:27
JavaScript中的64位加密及解密
2009-12-23 19:10:00
Python正则表达式中的'r'用法总结
2021-08-22 23:16:34
javascript实现文字无缝滚动效果
2024-04-22 22:35:19
Python 保持登录状态进行接口测试的方法示例
2023-03-18 17:09:07
使用numpy.ndarray添加元素
2022-10-31 06:12:15
浅谈对python中if、elif、else的误解
2021-04-04 00:57:57
Python中性能分析利器pyinstrument详细讲解
2021-02-15 10:46:51
Python解析多帧dicom数据详解
2022-08-13 21:16:13
Mysql删除重复数据并且只保留一条(附实例!)
2024-01-27 04:48:27
Python使用urllib模块的urlopen超时问题解决方法
2023-12-16 02:49:50
oracle 常用的几个SQL
2009-12-01 12:36:00
python 统计列表中不同元素的数量方法
2023-10-16 05:22:33
vue 解决异步数据更新问题
2024-04-30 10:45:28
Python多线程多进程实例对比解析
2022-10-09 16:43:20