@Nikolay37

Как запустить несколько потоков с Puppeter в node js?

Для начала - мне нужно открыть несколько окон с Puppeter, для этого - я вызываю функцию через цикл, с разными параметрами. После чего - функция отправляет пару запросов и после - вызывает эту функцию с Puppeter
function startPup(){
    (async () => {
      const browser = await puppeteer.launch()
      const page = await browser.newPage();
      await page.goto('https://...');
      await page.addScriptTag({path: 'script.js'});
      try{
        await page.waitForSelector('#name')
        html = await page.content()
        console.log(html )
        await browser.close();
      }
      catch{
        console.log(html)
        await browser.close();
      }
    })()
}

Но, суть в том, что это все делается синхронно в том числе и вызов Puppeter-ов. А они видимо связаны между собой и в итоге - тот puppeter, который быстрее получит selector с id = name - выполнит скрипт и закроет страницу. Второй же судя по всему получив те же данные из скрипта, тоже закроется. Мне нужно - что бы они не были связаны друг с другом и были запущены в асинхронном порядке
  • Вопрос задан
  • 495 просмотров
Пригласить эксперта
Ответы на вопрос 1
coderisimo
@coderisimo
ОЧЕРЕДИ вам помогут :) . Есть даже специализированные решения для Puppeter - https://github.com/thomasdondorf/puppeteer-cluster.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы