Я использую Puppeteer для очистки нескольких веб-страниц.
Моя идея состоит в том, чтобы открыть несколько вкладок (используя команду browser.newPage ()), а затем передать несколько X ссылок на эти страницы, чтобы распараллелить работу.
Проблема в том, что иногда программа работает правильно, а иногда нет (программа зависает и время ожидания ошибки страницы сбрасывается).
Моя идея состоит в том, что, вероятно, я что-то не так делаю, выполняя обещания, но я не могу понять, в чем проблема.
Я следую примеру кода, который я нашел по этой ссылке .
const promises=[];
let totBrowserInstances = 3;
//instancesLinksMatrix[totBrowserInstances][linksToScrape]
// matrix where all the links to scrape are stored, it is created in previous part of the code;
for(let i=0; i<totBrowserInstances; i++){
console.log('Page ID Spawned', i);
promises.push(browser.newPage()
.then(async (page) => {
for(let j=0; j<instancesLinksMatrix[i].length; j++){
await page.goto(instancesLinksMatrix[i][j], {waitUntil: 'domcontentloaded'}); // start as soon as the DOM is ready
await page.evaluate(() => {
return document.querySelector('.competizione .pagina h3').innerText;
}).then((result) => {
console.log('response: ' + result);
});
}
}));
}
await Promise.all(promises);