node.js - 笔记 : 保存喜欢的图片

//引入核心模块
const http = require("http");
const https = require("https");
const fs = require("fs");
const cheerio = require("cheerio");
for (var page = 1; page < 2; page++) {
}

// let url = `https://pic.netbian.com/4kdongman/index_${page}.html`
for (let page = 12; page < 200; page++) {
    let url = `http://www.bizhi88.com/c3/${page}.html`
    //创建服务
    http.get(url, (res) => {
        //触发接收事件data
        let imageData = "";
        res.on("data", (chunk) => {
            //接收数据,将数据一点点的追加到没我们定义的空字符串中
            imageData += chunk;
        });
        //触发接收完成时间end
        res.on("end", () => {
            //cheerio类似于jQuery我们在用他之前必须载入文档用(load方法)
            const $ = cheerio.load(imageData);
            let ImgData = [];
            // https://pic.netbian.com/uploads/allimg/210827/140836-16300445167682.jpg
            // http://image.qianye88.com/pic/d70b922f1e39604dfa85273e4b795122?imageMogr2/thumbnail/x280/quality/90!
            //遍历查出来的文本数据
            $(".flex-img .item .img .lazy").each((index, item) => {
                //定义一个空数组,将数据内容存在里面 
                // let imgUrl = `https://pic.netbian.com/` + $(item).attr("src");
                ImgData.push($(item).attr("data-original"));
            });
            //循环调用图片函数
            for (let i = 0; i < ImgData.length; i++) {
                saveImage(ImgData[i]);
            }
        });
    });
}
//封装图片函数
function saveImage(imageUrl) {
    //创建服务
    http.get(imageUrl, (res) => {
        //二进制
        res.setEncoding("binary");
        let imageData = "";
        //将图片加载到内存中
        res.on("data", (shuju) => {
            imageData += shuju;
        });

        //加载完保存图片
        res.on("end", () => {
            //创建文件夹,如果有择不创建
            if (!fs.existsSync("./img2")) {
                fs.mkdirSync("./img2");
            };
            //保存图片
            fs.writeFile("./nodeReptile/getPicture/img2/" + Math.random() * 10000 + 1 + '.png', imageData, "binary", (err) => {
                if (!err) console.log("保存成功!!!")
            })
        })
    })
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值