#node.js #web-scraping #google-cloud-platform #puppeteer #google-datalayer
# #node.js #очистка веб-страниц #google-облачная платформа #кукловод #google-слой данных
Вопрос:
благодаря puppeteer я создаю бот для очистки веб-страниц, и я хочу проверить поле слоя данных на некотором URL-адресе благодаря облачным функциям в Google Cloud Plateform.
прямо сейчас я использую await page.$('dataLayer')
, и он возвращает «true», поэтому он находит слой данных.
в моем браузере есть слой данных (не 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 я получаю эту ошибку:
Ответ №1:
лучше используйте page.evaluate('dataLayer')
then stringify или используйте его по своему усмотрению 🙂
и с оценкой for(let item in dl)
работает нормально!