标签:
/** * Created by Administrator on 2016/9/22 0022. */ //依赖的模块 var http=require(‘http‘); var fs=require(‘fs‘); var cheerio=require(‘cheerio‘); var request=require(‘request‘); var iconv = require(‘iconv-lite‘); var setParams={ initUrl:‘http://www.mm131.com/xinggan/2663.html‘,//初始化网页请求地址 maxNum:10,//设置最大爬取数量 intervalTime:800,//设置间隔时间 index:0,//从0开始标记爬取的数量 nextTimeInitUrl:‘‘,//保存下次爬取图片时需要初始化的网页地址 logs:‘‘//把日志保存起来,下次手动改initUrl为日志里的地址 }; function getSexyPics(initUrl) { var resData=‘‘; http.get(initUrl, function (res) { res.on(‘data‘, function (chunk) { //转换编码 resData += iconv.decode(chunk,‘gb2312‘); }); res.on(‘end‘, function () { //用cheerio模块解析请求的数据 var $ = cheerio.load(resData); var images= { //获取图片标题 title: $(‘.content h5‘).text().trim(), //记录请求页面数 index: setParams.index = setParams.index + 1 }; //下载当前页面的图片 downloadImg($,images.title,images.index); var nextPage=$(‘.content-page a.page-ch:last-child‘).attr(‘href‘); var newUrl = ‘http://www.mm131.com/xinggan/‘ + nextPage; //如果没有当前组的图片点完则跳转到下一组 newUrl=nextPage?newUrl:$(‘.updown .updown_r‘).attr(‘href‘); newUrl= encodeURI(newUrl); //设置最大爬取数量 if (setParams.index < setParams.maxNum) { setTimeout(function(){ getSexyPics(newUrl); },setParams.intervalTime); } setParams.nextTimeInitUrl=newUrl; setParams.logs=‘下次需要执行的初始化地址是\(替换initUrl即可\)---‘+setParams.nextTimeInitUrl; saveLogs(setParams.logs); }); }).on(‘error‘, function (e) { console.log("错误:" + e.message); }); function saveLogs(logs){ fs.exists(‘./logs‘, function (exists) { if (!exists) { fs.mkdir(‘./logs‘); } fs.writeFile(‘./logs/‘+‘日志‘+‘.txt‘,logs,‘utf-8‘,function(err){ if(err)console.log(err); }) }); } function downloadImg($,imgTil,idx){ var imgUrl=‘‘; $(‘.content-pic a img‘).each(function () { imgUrl=encodeURI($(this).attr(‘src‘));//获取图片的地址 var suffix=imgUrl.substring(imgUrl.lastIndexOf(‘.‘));//获取图片后缀名 console.log(‘第‘+idx+‘张图片---‘+imgTil+‘---‘+imgUrl); fs.exists(‘./img‘, function (exists) { if (!exists) { fs.mkdir(‘./img‘); } request(imgUrl).pipe(fs.createWriteStream(‘./img/‘+imgTil+suffix)); }); }); } } getSexyPics(setParams.initUrl);
觉得好用的给个赞,...
标签:
原文地址:http://www.cnblogs.com/leyi/p/5903068.html