以下代码有些冗余,大家捡核心看就好。
// 内置http模块,提供了http服务器和客户端功能 var http=require("http");// cheerio模块,提供了类似jQuery的功能 var cheerio = require("cheerio");// 内置文件处理模块 var fs=require('fs'); // 请求参数JSON var options;// 请求并获得数据 var req;// 存储页码 var index=4;function downloadImg(pageNumber){console.log("开始读取第"+pageNumber+"页");// http://images2017.cnblogs.com/blog/162475/201709/162475-20170929115047356-360094413.png // 实际图片地址options={hostname:'images2017.cnblogs.com',// 这里别加http://,否则会出现ENOTFOUND错误port:80,path:'/blog/162475/201709/162475-20170929115047356-360094413.png',// 子路径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("162475-20170929115047356-360094413.png", 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(); }// 包一层函数 function start(i){downloadImg(i); }// 开始遍历 start(index);