zoukankan      html  css  js  c++  java
  • nodejs 爬图片

    const path = require('path');
    const request = require('request');
    const cheerio = require('cheerio');
    const fs =  require('fs');
    
    let page = 0;
    const total = 10; //总共几页
    const waitTime = 30000; //间隔时间, 毫秒
    const savePath = './image';
    
    begin();
    
    function begin() {
        if (!fs.existsSync(savePath)) {
            fs.mkdirSync(savePath);
        }
    
        const url = 'http://www.图片网址.com';
        getImageByUrl(url);
    }
    
    //爬取指定页面的图片
    function getImageByUrl (_url) {
        page++;
        console.log(`开始第${page}页`);
        request(_url, function(err, resp, body) {
            if (err) {
                console.log(err);
            } else {
                const $ = cheerio.load(body);
                $('.commentlist > li .text img').each(function() {
                    const src = $(this).attr('src');
                    const baseName = path.win32.basename(src);
                    request(`http:${src}`).pipe(fs.createWriteStream(`${savePath}/${baseName}`));
                });
                const prevUrl = $('.previous-comment-page').attr('href');
                if (page < total && prevUrl.length > 0) {
                    setTimeout(() => {
                        getImageByUrl(`http:${prevUrl}`);
                    }, waitTime);
                }
            }
        });
    }
  • 相关阅读:
    静态方法、类方法、属性方法
    B-tree/B+tree
    支付宝
    七牛云上传视频3
    测试理论
    测试理论
    Xshell上传文件
    iptables增加、删除、修改、查询、保存防火墙策略教程
    docker私有仓库常用命令
    centos7修改主机名
  • 原文地址:https://www.cnblogs.com/qiuxd/p/13168799.html
Copyright © 2011-2022 走看看