Files
ClassContent/历届学生/font-end-nine/项目练习/上课项目/pc/index.js
2024-09-27 02:06:13 +08:00

81 lines
1.7 KiB
JavaScript

const request = require('request');
const iconv = require('iconv-lite');
const cheerio = require('cheerio');
const fs = require('fs');
// var Iconv = require('iconv').Iconv;
var baseUrl = 'https://pic.netbian.com';
// 1034 页,主要存放 页面地址的
var pageArr = [];
var pageIndex = 0
var hrefArr = [];
var hrefIndex = 0;
for (var i = 1; i <= 100; 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()