85 lines
1.6 KiB
JavaScript
85 lines
1.6 KiB
JavaScript
const request = require('request');
|
||
const iconv = require('iconv-lite');
|
||
var Iconv = require('cheerio');
|
||
const fs = require('fs');
|
||
|
||
|
||
var baseUrl = 'https://pic.netbian.com';
|
||
|
||
//1034页数,主要存放页面地址的
|
||
var pageArr = [];
|
||
var pageIndex = 0
|
||
|
||
|
||
var hrefArr = [];
|
||
var hrefIndex = 0;
|
||
|
||
|
||
|
||
for (var i = 1; i < 3; i++) {
|
||
if (i == 1) {
|
||
pageArr.push(baseUrl)
|
||
} else {
|
||
pageArr.push(`${baseUrl}/index_${i}.html`)
|
||
}
|
||
}
|
||
console.log("pageArr:", pageArr);
|
||
|
||
|
||
function requestPage() {
|
||
getHtml(pageArr[pageIndex], ($) => {
|
||
$(".slist li").each(function (index, ele) {
|
||
if (!$(this).hasClass("nextpage")) {
|
||
hrefArr.push(
|
||
`${baseUrl}${$(this).find("a").attr("href")}`
|
||
)
|
||
}
|
||
})
|
||
|
||
|
||
requestInfo()
|
||
|
||
console.log("hrefArr: ", hrefArr);
|
||
})
|
||
}
|
||
|
||
|
||
function requestInfo() {
|
||
getHtml(hrefArr[hrefIndex], ($) => {
|
||
request(`${baseUrl}${$(".photo-pic img").attr("src")}`)
|
||
.pipe(
|
||
fs.createWriteStream(`./img/${ Math.random() * 1000000 + `${Date.now()}` }.jpg`)
|
||
)
|
||
|
||
hrefIndex += 1;
|
||
if (hrefIndex < hrefArr.length) {
|
||
requestInfo()
|
||
} else {
|
||
pageIndex += 1
|
||
if (pageIndex < pageArr.length) {
|
||
requestPage()
|
||
}
|
||
}
|
||
|
||
})
|
||
|
||
}
|
||
|
||
|
||
|
||
|
||
|
||
function getHtml(url, callback) {
|
||
request({
|
||
uri: url,
|
||
method: 'GET',
|
||
encoding: 'binary'
|
||
}, function (error, response, body) {
|
||
var str2 = iconv.decode(new Buffer(body, 'binary'), 'gbk');
|
||
const $ = cheerio.load(str2);
|
||
callback($)
|
||
});
|
||
}
|
||
|
||
requestPage()
|