使用node js 批量下载图片到本地

先贴代码

var fs = require("fs");
var path = require('path');
var asyncF = require("async");
var request = require('request');
var imageLinks = [
   "https://xxx.xxx.com/pn/wsec-img1/2020/6/4/0f5c6214-6c08-4efc-aa42-145947aba3d3.jpg",
   "https://xxx.xxx.com/pn/wsec-img1/2020/8/3/ae122d8d-b577-481c-9b6a-01c9d4115acb.jpg",
   "https://xxx.xxx.com/pn/wsec-img1/2019/8/15/90a65578-75c5-4d34-b29d-077dcc0fea7e.jpg"
]

var index = 1;

var downloadImage = function(src, dest, callback) {
	request.head(src, function(err, res, body) {
		// console.log('content-type:', res.headers['content-type']);
		// console.log('content-length:', res.headers['content-length']);
		if (src) {
			request(src).pipe(fs.createWriteStream(dest)).on('close', function() {
				callback(null, dest);
			});
		}

	});

};

asyncF.mapSeries(imageLinks, function(item, callback) {
	//console.log(item);
	setTimeout(function() {
		if (item.indexOf("https://img1.wushang.com") === 0) {
			var destImage = path.resolve("./images/", item.split("/")[item.split("/").length -1]);
			downloadImage(item, destImage, function(err, data){
				console.log("["+ index++ +"]: " + data);
			});
			
		}
		callback(null, item);
	}, 100);


}, function(err, results) {});

大体流程 将所要下载的图片链接 写入一个单独的模块,因为图片量比较多。如上图的imageLinks 这个数组。
1.安装模块 npm install fs–save 一次安装上图引入的模块
2.引入所需要的的模块,fs-文件系统,path 模块提供了一些用于处理文件路径的小工具,而后将下载的图片保存到本地某个文件中,async-流程控制工具包,使用异步操作,解决图片下到一般报错的问题,request-网络请求
3.在本地新建一个js文件 main.js ,文件类容如上图js代码
4.在当前main.js目录下 新建一个images文件夹 用于存放下载的图片
在这里插入图片描述
你也可以自己指定存放地址
5.进入main.js文件所在目录 执行命令 node main.js

转载:https://www.meiwen.com.cn/subject/npkhsttx.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值