Ошибка при повторной смены прокси
Я использую puppeteer-cluster для многопоточного парсинга, так же мне нужно чтобы на каждую новую страницу (поток) использовалась рандомная прокси. Для этого я использую библиотеку puppeteer-page-proxy
Мой код выглядит так:
const cluster = await Cluster.launch({
concurrency: Cluster.CONCURRENCY_CONTEXT,
monitor: false,
maxConcurrency: 1, //для отладки поставил 1 поток
timeout: 2100000000,
puppeteerOptions: {
headless: false,
args: [
'--no-sandbox',
'--disable-web-security'
],
ignoreHTTPSErrors: true
}
});
await cluster.task(async ({ page, data: arr }) => {
...
await useProxy( page, get_random_item(pageProxy).proxy );
...
});
cluster.queue(...);
await cluster.idle();
await cluster.close();
В итоге получается что первый поток (страница) выполняется, и как только все что нужно на странице было сделано, идет запуск второй страницы (потока), и тут приложение падает с ошибкой:
ProtocolError: Protocol error (Network.getCookies): Target closed.
Если убрать это:
await useProxy( page, get_random_item(pageProxy).proxy );
то такой ошибки не происходит.
так же я попробовал запустить одновременно 2 (из двух) потоков (maxConcurrency: 2), в итоге после одновременного выполнения действий, скрипт точно так же упал с такой же ошибкой.
на странице я просто кликая по определенным кнопкам и отправляю форму которая находится во фрейме.
Как избавится от этой ошибки?
Буду благодарен за помощь!
