Я пытаюсь очистить некоторые данные с помощью кукловода и посмотреть, обновились ли эти данные, поэтому я подумал, что могу сохранить sh этих данных и смотреть, были ли они каждый день разными, но когда я sh это это с помощью crypto.createHa sh (), он каждый раз возвращает разные ha sh, даже если данные все те же.
const puppeteer = require("puppeteer");
const crypto = require("crypto");
(async () => {
const browser = await puppeteer.launch()
const page = await browser.newPage()
await page.goto("https://www.wuxiaworld.com/novel/rmji")
await page.waitForSelector("#accordion li.chapter-item a")
const chapters = await page.$$eval('#accordion li.chapter-item a', anchors => {
return anchors.map(anchor => anchor.textContent)
})
const hashed = crypto.createHash("md5").update(chapters.toString()).digest("hex");
console.log(hashed)
await browser.close()
})()
ОБНОВЛЕНИЕ: после некоторого тестирования я думаю, что сузил то, что может вызвать это - добавив .slice к нашим результатам, я обнаружил, что наличие 1 или 2 результатов работает нормально, но добавление третьего результата как-то всегда его нарушает. Итак, ошибка где-то внутри страницы. $$ eval function
return anchors.map(anchor => anchor.textContent).slice(0, 2)
Также странно, что если я попытаюсь использовать .getAttribute ('href') вместо .textContent или .inner Html, все будет работать нормально .