При использовании eval и evaluate, не могу пушить данные в общий массив,
при переходе разных страниц,
в общем массиве получаю несколько массивов, сколько страниц, столько и массивов.
Можно ли пушить объекты на каждой странице в глобальный массив?
Чтобы получить 1 целостный массив с объектами [ {title: "text"}, {title: "text"}, {title: "text"}, {title: "text"}, {title: "text"}, {title: "text"}, {title: "text"}, {title: "text"}, {title: "text"} ]
Получаю такой результат [ [{title: "text"}, {title: "text"}, {title: "text"}], [{title: "text"}, {title: "text"}, {title: "text"}], [{title: "text"}, {title: "text"}, {title: "text"}], ]
или их нужно соединять?
мой пример:
let uniqueLinks = [
"url1",
"url2",
"url3"
];
let productsList = [];
const codes = [];
let elementArray = [];
let dataArray = [];
(async () => {
let resultObj = {}
let returnedResponse;
var results = [];
const browser = await puppeteer.launch({
headless: false,
args: [
"--no-sandbox",
],
});
const page = (await browser.pages())[0];
page.setUserAgent('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36');
for (let i = 0; i < uniqueLinks.length; i ++) {
await page.goto(uniqueLinks[i]);
await page.waitForSelector('body');
const reviews = await page.evaluate(() => {
const reviewElements = document.querySelectorAll('.js-product-container');
const reviews = [];
reviewElements.forEach((element) => {
const title = element.querySelector('.js-product-container .catalog-item__title').innerText;
reviews.push({
title,
});
});
return reviews;
});
console.log(reviews);
}
await browser.close();
})();