利用node来下载图片到本地
本文是针对于知道图片地址的下载图片方法。
同时也是我的处男作(额,怪怪的〜);不要在意这些细节。
最近在弄项目迁移,需要把http的链接全换成https的;以前的cms不支持http的协议,然后就需要迁移到新的服务器了;破屋还逢连夜雨,就在这个时候以前的cms登录帐号还被禁(tm逗我玩呢);
将还未迁移的图片更换到一个新的cms地址去,面临的第一个问题就是下载到本地;
图片十来张,一想就头大,正常的做法,第一意识就是一张张手动保存到本地;可是这样会特别烦〜
就在前一段时间有空,正好玩了一下node爬虫,想到正好可以利用这个功能把所有图片都load下来,再传到新cms,然后当晚就用上了,特别方便。感觉自己就是天才〜
额。bb的有点多了,再不上代码估计要被打了吧?
//依赖模块 var fs = require('fs'); var request = require("request"); var mkdirp = require('mkdirp'); var path = require('path'); //本地存储目录 var dir = path.join(__dirname + '/../images'); //创建目录 mkdirp(dir, function(err) { if(err){ console.log(err); } }); // 图片下载地址 // 这个地址如果没有,可以换成spiderPic.js操作 var urlArr = [ 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xiaoxiao1.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xiaoxiao2.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xiaoxiao3.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xiaoxiao4.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xinyidai1.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xinyidai2.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xinyidai3.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/xinyidai4.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/baodandai1.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/baodandai2.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/baodandai3.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/baodandai4.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/chedidai1.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/chedidai2.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/chedidai3.jpg', 'http://m.pingan.com/app_images/wap/v30/c3/chaoshi/sys/daikuan/chedidai4.jpg' ]; // 主要方法,用于下载文件 var download = function(url, dir, filename){ request.head(url, function(err, res, body){ request(url).pipe(fs.createWriteStream(dir + "/" + filename)); }); }; urlArr.map(function(val) { download(val, dir, val.split('daikuan/')[1]); })
一种是在知道网页的情况下爬图片,第二种是知道图片地址直接下载图片如果有同学感兴趣node爬虫的,可以看下这个简单的爬虫:
https://github.com/yeeFlame/node_pro/tree/master/img-spider
目前还是在学习路上。写的不好还请多指教,共同进步!