102 lines
3.0 KiB
JavaScript
102 lines
3.0 KiB
JavaScript
const axios = require("axios");
|
|
const iconv = require("iconv-lite");
|
|
const cheerio = require("cheerio");
|
|
const fs = require("fs");
|
|
var url = "http://www.netbian.com/dongman/";
|
|
var urlArr = [];
|
|
var imgUrlArr = [];
|
|
var index = 0;
|
|
var urlIndex = 6;
|
|
|
|
for (var i = 9; i <= 136; i++) {
|
|
if (i == 1) {
|
|
urlArr.push(url);
|
|
} else {
|
|
urlArr.push(`${url}index_${i}.htm`);
|
|
}
|
|
}
|
|
|
|
async function getSiteHtml() {
|
|
console.log(`第 ${index + 1} 页,请求地址为:`, urlArr[index]);
|
|
let res = await axios({
|
|
method: "get",
|
|
url: urlArr[index],
|
|
responseType: "arraybuffer",
|
|
headers: {
|
|
"User-Agent":
|
|
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
|
|
Cookie:
|
|
"__yjs_duid=1_b9d996b2175dc2d7535f6766d95151c11626417252241; Hm_lvt_14b14198b6e26157b7eba06b390ab763=1626417252; xygkqecookieinforecord=%2C7-23654%2C; xygkqecookieclassrecord=%2C7%2C4%2C3%2C29%2C19%2C; yjs_js_security_passport=fd52428938eab0e648019f36164ac5c0fcfcf108_1626421470_js; Hm_lpvt_14b14198b6e26157b7eba06b390ab763=1626421860",
|
|
Host: "www.netbian.com",
|
|
Accept:
|
|
"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
|
|
},
|
|
});
|
|
let $ = cheerio.load(iconv.decode(res.data, "gbk"));
|
|
jxHtml($);
|
|
}
|
|
|
|
async function jxHtml($) {
|
|
$(".list li img").each(function (i) {
|
|
var src = $(this).attr("src");
|
|
if (src.includes("small")) {
|
|
src = src.replace("small", "");
|
|
src = src.replace(src.substr(-14), ".jpg");
|
|
imgUrlArr.push(src);
|
|
}
|
|
if (src.includes("newc")) {
|
|
console.log("===========================");
|
|
console.log(`1: 系统检测到不符合规律的图片,请手动处理`);
|
|
console.log(`访问路径:${urlArr[index]}, 第: ${i} 张图`);
|
|
console.log("===========================");
|
|
}
|
|
});
|
|
|
|
downImage();
|
|
}
|
|
|
|
async function downImage() {
|
|
console.log("imgUrlArr[urlIndex] ====== ", imgUrlArr[urlIndex]);
|
|
try {
|
|
var jpgFileName = Date.now() + Math.random() + ".jpg";
|
|
var res = await axios({
|
|
method: "get",
|
|
url: imgUrlArr[urlIndex],
|
|
responseType: "stream",
|
|
});
|
|
|
|
res.data.pipe(fs.createWriteStream(`img/${jpgFileName}`));
|
|
|
|
console.log(
|
|
`当前第:${index + 1} 页,第:${urlIndex + 1} 张图:${imgUrlArr[urlIndex]}`
|
|
);
|
|
|
|
if (urlIndex <= imgUrlArr.length - 2) {
|
|
setTimeout(() => {
|
|
urlIndex += 1;
|
|
downImage();
|
|
}, 1000);
|
|
} else {
|
|
console.log("上一页结束");
|
|
urlIndex = 0;
|
|
imgUrlArr = [];
|
|
setTimeout(() => {
|
|
index += 1;
|
|
getSiteHtml();
|
|
}, 2000);
|
|
}
|
|
} catch (error) {
|
|
console.log("===========================");
|
|
console.log(`2: 系统检测到不符合规律的图片,请手动处理`);
|
|
console.log(`访问路径:${urlArr[index]}, 第: ${urlIndex} 张图`);
|
|
console.log("===========================");
|
|
setTimeout(() => {
|
|
urlIndex += 1;
|
|
downImage();
|
|
}, 1000);
|
|
}
|
|
|
|
}
|
|
|
|
getSiteHtml();
|