Node.JS: многопоточный экземпляр Puppeteer с несколькими разными носками5 - PullRequest
2 голосов
/ 03 мая 2020

Я написал функцию start () для Puppeteer, которая запускает один экземпляр браузера с прокси. Я пров ie прокси из массива под названием socks. Код выглядит так:

async function start() {
      let launchOption = {
      headless: false,
      args: ["--no-sandbox", "--proxy-server=socks5://" + socks[0],};

      const browser = await puppeteer.launch(launchOption);
      const page = await brower.newPage();
      await page.goto("https://example.com");
       }

Теперь я хочу запустить несколько браузеров, каждый с разными носками. Например:

browser1 = "--proxy-server = socks5: //" + socks [0] browser2 = "--proxy-server = socks5: //" + socks [1] ... .

Я хочу сделать это, не создавая несколько функций, в которых я бы сменил носок. Я думал об al oop, но я действительно не знаю, как все это собрать. Если бы кто-то был так добр и указал мне, с чего начать, я был бы очень благодарен!

1 Ответ

1 голос
/ 03 мая 2020

Вы можете определенно go с l oop. Просто используйте некоторые функции ожидания, чтобы запустить его правильно.

for (var i = 0; i < 10; i ++) {
    start(i); 
}

Это открывает 10 браузеров одновременно.

for (var i = 0; i < 10; i ++) {
    await start(i); 
}

Это открывает 10 браузеров один за другим после загрузки.

for (var i = 0; i < 10; i ++) {
    start(i); 
    wait(3000);
}

function wait(ms){
   var start = new Date().getTime();
   var end = start;
   while(end < start + ms) {
     end = new Date().getTime();
  }
}

Это открывает ваш браузер каждые 3 секунды.

С уважением

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...