使用 puppeteer 列出 dataLayer 的元素

List element of a dataLayer with puppeteer

感谢 puppeteer,我正在做一个网络抓取机器人,我想验证一些 url 上的数据层字段,这要感谢 Google Cloud Plateform 上的云功能。

现在我正在使用 await page.$('dataLayer') 并且它 return 为“true”,因此它找到了数据层。

我的浏览器上有 dataLayer(不是 puppeteer)

我的代码:

exports.datalayer = async(page) => {
    //verfify if there is a dataLayer
    let dl = await page.$('dataLayer')
    if(dl =! null){
        console.log('DataLayer found')
        
        //want to do something like that 
        for(let key in dl){
            let value = dl[key]
            console.log('key: ' + key + ' value: ' + value)
        }
        //or like that
        dl.forEach(element => {
            console.log(element)
        });

    }else{
        console.log('error with the dataLayer')
    }
}

为了抓取OnetrustActiveGroups的数据。

当我执行 forEach 方法时出现此错误:

对于 for 方法我得到这个错误:

最好使用 page.evaluate('dataLayer') 然后将其字符串化或根据需要使用它:)

并且通过评估 for(let item in dl) 工作正常!