/*** 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');//设置参数
new GetSexyPics({initUrl: '.html',//初始化网页请求地址maxNum: 100,//设置最大爬取数量(maxNum-index的值即爬取图片的数量)intervalTime: 800,//设置间隔时间index: 0//从0开始标记爬取的数量
});function GetSexyPics(params) {_this=this;_this.setParams=ateFolder = function (name) {fs.exists('./' + name, function (exists) {if (!exists) {fs.mkdir('./' + name);}});};SexyPics = function (initUrl) {var resData = '';var req(initUrl, function (res) {('data', function (chunk) {//转换编码resData += iconv.decode(chunk, 'gb2312');});('end', function () {//用cheerio模块解析请求的数据var $ = cheerio.load(resData);var images = {//获取图片标题title: $('.content h5').text().trim(),//记录请求页面数index: _this.setParams.index = _this.setParams.index + 1};//下载当前页面的图片downloadImg($, images.title, images.index);var nextPage = $('.content-page a.page-ch:last-child').attr('href');var newUrl = '/' + nextPage;//如果没有当前组的图片点完则跳转到下一组newUrl = nextPage ? newUrl : $('.updown .updown_r').attr('href');newUrl = encodeURI(newUrl);//设置最大爬取数量if (_this.setParams.index < _this.setParams.maxNum) {setTimeout(function () {_SexyPics(newUrl);}, _this.setParams.intervalTime);}//保存下次爬取图片时需要初始化的网页地址var nextTimeInitUrl = newUrl;//把日志保存起来,下次手动改initUrl为日志里的地址var logs = '下次需要执行的初始化地址是(替换initUrl即可)---' + nextTimeInitUrl;saveLogs(logs);});}).on('error', function (e) {console.log(e);console.log("错误:" + e.message);});function saveLogs(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);request(imgUrl).ateWriteStream('./img/' + imgTil + suffix));});}('error',function(err){console.log(err)})};this.init = function () {ateFolder('img');ateFolder('logs');SexyPics(_this.setParams.initUrl);};this.init();
}
觉得好用的给个赞,...
转载于:.html
本文发布于:2024-01-28 11:26:15,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17064123797091.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |