Files
ClassContent/历届学生/吴欣阳/每天课程/2021-07-16/nodestudy/pachong.js
2024-09-27 02:06:13 +08:00

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();