Ошибка при повторной смены прокси

Я использую 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), в итоге после одновременного выполнения действий, скрипт точно так же упал с такой же ошибкой.

на странице я просто кликая по определенным кнопкам и отправляю форму которая находится во фрейме.

Как избавится от этой ошибки?

Буду благодарен за помощь!


Ответы (0 шт):