Node.JS:具有多个不同Socks5问题的Puppeteer多线程实例

问题描述 投票:0回答:1

我为Puppeteer编写了一个函数start(),它使用代理启动一个Browserinstance。我从一个叫做袜子的数组提供代理。代码如下所示:

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://” +袜子[0]browser2 =“ --proxy-server = socks5://” +袜子[1]....

我想做到这一点,而无需创建多个我要更改Sock的功能。我当时正在考虑一个循环,但我真的不知道如何将它们放在一起。如果有人这么仁慈,让我朝着从哪里开始的方向迈进,我将非常感激!

javascript node.js function loops puppeteer
1个回答
0
投票

您绝对可以使用循环。只需使用一些等待功能即可正确运行它。

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秒打开一次浏览器。

问候

© www.soinside.com 2019 - 2024. All rights reserved.