使用node批量抓取并保存 rosi小姐姐写真图片

有的时候我们浏览一些网站,主要是为了看里面的图片,但是这样会存在几个问题

  1. 网速不给力的情况下怎么办?
  2. 来回切换网页,感觉好辛苦

    我们一起来学习如何批量下载图片到本地然后查看

主要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;

这里写图片描述

猜你喜欢

转载自blog.csdn.net/zjsfdx/article/details/81043976
今日推荐