猿问

从页面上的列表中查找单词

我目前正在编写一个脚本,它可以检测坏词并在出现该词时发出警报。


我正在使用 puppeteer,它可以访问 chrome 浏览器,并且能够在终端中运行命令。我在控制台中尝试了很多东西,例如“包含”,但这给出了一个未定义的错误。https://love2dev.com/blog/javascript-includes/


我还尝试在 Stackoverflow 上添加答案的代码;使用javascript在html页面中查找单词


但这在 puppeteer 中不起作用,它仅在您将其粘贴到终端中时才起作用。本系统只能搜索1个词。我的想法是制作一个包含所有必须过滤的单词的数组。


到目前为止,我已经写了以下内容。据我了解,要运行代码,我需要将其放入evaluate() 的{} 中。


const puppeteer = require('puppeteer');


(async () => {

    const browser = await puppeteer.launch();

    const page = await browser.newPage();

    const id = new Date();

    console.log(id)

    await page.goto('https://www.mediamarkt.nl/nl/search.html?query=iphone&searchProfile=onlineshop&channel=mmnlnl', {waitUntil: 'networkidle2'});

    const html = await page.evaluate(() => {

         return page.includes("mediamarkt");

    });

    console.log(html)

    console.log("it worked, i guess");

})();

这会产生如下错误:


19-07-23T23:38:23.763Z

(node:24944) UnhandledPromiseRejectionWarning: Error: Evaluation failed: ReferenceError: page is not defined

我要问你的问题是,我如何使用这些工具创建一个坏词过滤器,或者我可以在哪里了解更多关于我需要的技能的信息。


慕尼黑5688855
浏览 133回答 2
2回答

杨__羊羊

如果你想找到不好的短语(包括空格),你可以尝试:const found = await page.evaluate(() => window.find(elementsToSearchFor));或const found = (await page.content()).match(REGEX)
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答