получение разных хэшей из crypto.createHa sh () - PullRequest
0 голосов
/ 06 августа 2020

Я пытаюсь очистить некоторые данные с помощью кукловода и посмотреть, обновились ли эти данные, поэтому я подумал, что могу сохранить 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, все будет работать нормально .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...