使用 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)
工作正常!
感谢 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)
工作正常!