Node.js批量抓取高清妹子圖片 增強版

fdpg 9年前發布 | 3K 次閱讀 JavaScript Node.js

 
//依賴模塊
var fs = require('fs');
var request = require("request");
var cheerio = require("cheerio");
var mkdirp = require('mkdirp');
var http = require('http');
var urlparse = require('url').parse;

//目標網址 var url = '

//本地存儲目錄 var dir = './images';

//創建目錄 mkdirp(dir, function (err) { if (err) { console.log(err); } });

function sleep(milliSeconds) { var startTime = new Date().getTime(); while (new Date().getTime() < startTime + milliSeconds); };

//發送請求 var getFile = function (url, i, max) { if (i > max)return; request(url + i, function (error, response, body) { if (!error && response.statusCode == 200) { var $ = cheerio.load(body); $('.img img').each(function () { var src = $(this).attr('src'); getDetailFile($(this).parent().attr('href')); console.log('正在下載' + src); var name = src.match('[^=/]\\w\\.jpg\\w')[0]; saveImg(src,dir, name); // sleep(2000); }); i++; getFile(url,i,max);

    }
});

};

var getDetailFile = function (url){ request(url, function (error, response, body) { if (!error && response.statusCode == 200) { var $ = cheerio.load(body); $('.img img').each(function () { var src = $(this).attr('src'); console.log('正在下載detail' + src); saveImg(src,dir, Math.floor(Math.random() * 100000) + src.substr(-4, 4));

        });
    }
});

}

function saveImg(url, dir,name){ sleep(500); http.get(url, function(res){ res.setEncoding('binary'); var data=''; res.on('data', function(chunk){ data+=chunk; }); res.on('end', function(){ fs.writeFile(dir + "/"+name, data, 'binary', function (err) { if (err) throw err; console.log('file saved '+name); }); }); }).on('error', function(e) { console.log('error'+e) }); } var i = 1; getFile(url, i, 100);

</pre>

 本文由用戶 fdpg 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!