首页 > 解决方案 > 使用 puppeteer 检测 DOM 中的变化 _ MutationObserver 正在工作

问题描述

我写了一个基于 MutationObServer 的函数:

module.exports.crawler = async(page, link)=>{
    try {
        await page.goto(link, { waitUntil: 'networkidle2' })
        await page.waitForSelector('#dbp')
        await page.waitForTimeout(10000)
        await page.exposeFunction('puppeteerLogMutation', () => {
          console.log('Mutation Detected: A child node has been added or removed.');
        });
        
      
        tables = await page.evaluate(async()=>{
          target = document.querySelector("#d02");
          const observer = new MutationObserver( mutations => {
            console.log(mutations)
          });
          observer.observe(target, { childList: true });
         
          return data
        })
    console.log(tables)
    await page.close()
    } catch (error) {
        console.log(error)
    }

目标变量每 20 秒变化一次。我想检测变化。但这不起作用。有什么想法吗?

标签: javascripthtmlnode.jspuppeteermutation-observers

解决方案


推荐阅读