有的时候我们浏览一些网站,主要是为了看里面的图片,但是这样会存在几个问题
- 网速不给力的情况下怎么办?
来回切换网页,感觉好辛苦
我们一起来学习如何批量下载图片到本地然后查看
主要node工具
cheerio和superagent和request
superagent的作用主要是用node访问http页面
cheerio主要作用类似浏览器的juqery
request请求图片,最后用fs.creaetWriteStream保存到本地
首先装一个node+express-generator
然后用express命令行生成一个简单的node网站大概的目录如下:
然后打开routes下的index文件,代码如下:
var express = require('express');
var router = express.Router();
const cheerio = require('cheerio');
const superagent = require('superagent');
const Throttle = require('superagent-throttle');
const fs = require('fs');
const Ut = require('./saveImg');
let throttle = new Throttle({
active:true, // set false ti pause queue
rate:6,
ratePer:10000,
concurrent:2
}).on('sent',(request) => {
"user strict";
}).on('received',(request) => {
// sent a request
"use strict";
console.log('开始请求' + request.url);
}).on('drained',() => {
"use strict";
console.log("请求完成");
});
/* GET home page. */
// router.get('/', function(req, res, next) {
// res.render('index', { title: 'Express' });
// });
router.get('/',function(req,res,next){
let r = res;
const reptileUrl = "http://www.meisiguan.cc/tag/rosi";
superagent.get(reptileUrl).end(function(err,res){
// 抛错拦截
if(err){
throw Error(err);
return;
}
r.send(res);
let $ = cheerio.load(res.text);
});
})
module.exports = router;