【问题标题】:Node.JS :Puppeteer Multithread Instance with multiple different Socks5 ProblemNode.JS:具有多个不同 Socks5 问题的 Puppeteer 多线程实例
【发布时间】:2020-05-03 11:15:53
【问题描述】:

我为 Puppeteer 编写了一个函数 start(),它使用代理启动一个 Browserinstance。我从一个名为 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] ....

我想这样做,而不是创建多个我会更改 Sock 的函数。我正在考虑一个循环,但我真的不知道如何将它们放在一起。如果有人能这么好心,让我找到开始的方向,我会非常感激!

【问题讨论】:

    标签: javascript node.js function loops puppeteer


    【解决方案1】:

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

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

    问候

    【讨论】:

    • 嘿iguru,感谢您的回答。看起来很甜!所以最好的方法是把袜子写在 config.json 中,我认为需要它。但是如何循环第二个浏览器获取下一个 ip 的所有内容呢?像这样: browser0 = socks[0} browser1 = socks[1] .... 感谢您的帮助!
    • const browser = await puppeteer.launch(launchOption);我认为这个命令可以让你用新的套接字打开新的浏览器
    • 我认为我的英语不够好,无法正确理解您的句子。如果你能再次描述我,那将是一种乐趣。
    • 当然 :) 所以我想打开例如 5 个浏览器,但每个浏览器都有不同的 Socks5。所以我不知道如何在变量 socks 的对象启动选项中使用循环。
    • async function start(index) { let launchOption = { headless: false, args: ["--no-sandbox", "--proxy-server=socks5://" + socks[index ],};常量浏览器 = 等待 puppeteer.launch(launchOption);常量页面 = 等待浏览器.newPage(); await page.goto("example.com"); } 如果您使用循环调用函数,这将为您提供 5 个带有 5 个套接字的浏览器。希望这对您有所帮助
    猜你喜欢
    • 1970-01-01
    • 2016-03-23
    • 2020-02-12
    • 1970-01-01
    • 1970-01-01
    • 2013-07-30
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    相关资源
    最近更新 更多