Node.js 使用爬虫批量下载网络图片到本地

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Node.js 使用爬虫批量下载网络图片到本地相关的知识,希望对你有一定的参考价值。

图片网站往往广告众多,用Node.js写个爬虫下载图片,代码不长,省事不少,比手动一张张保存简直是天与地的区别。

下面代码是一个从mtl.ttsqgs.com下载图片的程序,图片地址是看网站源码看出来的,总共有多少张也可以再源码里找到,然后就是按图索骥。

// 内置http模块,提供了http服务器和客户端功能
var http=require("http");

// cheerio模块,提供了类似jQuery的功能
var cheerio = require("cheerio");

// 内置文件处理模块
var fs=require(‘fs‘);

// 请求参数JSON
var options;

// 请求并获得数据
var req;

// 存储页码
var index=1;

function downloadImg(pageNumber){
    console.log("开始读取第"+pageNumber+"页");

    // http://mtl.ttsqgs.com/images/img/7957/4.jpg // 实际图片地址
    options={
        hostname:‘mtl.ttsqgs.com‘,// 这里别加http://,否则会出现ENOTFOUND错误
            port:80,
            path:‘/images/img/7957/‘+pageNumber+‘.jpg‘,// 子路径
          method:‘GET‘,
    };
    
    req=http.request(options,function(resp){
        var imgData = "";
        resp.setEncoding("binary"); 

        resp.on(‘data‘,function(chunk){
            imgData+=chunk;            
        });

        resp.on(‘end‘,function(){
            fs.writeFile("./imgs/"+pageNumber+".jpg", imgData, "binary", function(err){
                if(err){
                    console.log("文件下载失败.");
                }
                console.log("下载成功");
            });    
        });
    });

    // 超时处理
    req.setTimeout(5000,function(){
        req.abort();
    });

    // 出错处理
    req.on(‘error‘,function(err){
        if(err.code=="ECONNRESET"){
            console.log(‘socket端口连接超时。‘);
        }else{
            console.log(‘请求发生错误,err.code:‘+err.code);
        }
    });

    // 请求结束
    req.end();

    // 49页调完
    if(index<49){        
        index++;
        console.log(‘继续第‘+index+‘页‘);
        start(index);
    }
}

// 包一层函数
function start(i){
    downloadImg(i);
}

// 开始遍历
start(index);

2017年9月30日10:43:27

以上是关于Node.js 使用爬虫批量下载网络图片到本地的主要内容,如果未能解决你的问题,请参考以下文章

Node.js umei图片批量下载Node.js爬虫1.00

Node.js aitaotu图片批量下载Node.js爬虫1.00版

Node.js monly图片批量下载爬虫1.00

Node.js 4493图片批量下载爬虫1.00

Node.js meitulu图片批量下载爬虫1.01版

Node.js abaike图片批量下载Node.js爬虫1.01版