【问题标题】:Run Puppeteer with Tor使用 Tor 运行 Puppeteer
【发布时间】:2020-09-04 20:57:46
【问题描述】:

我安装了 Tor Expert Bundle,我想用 Puppeteer 运行它。

我试试:

const browser = await puppeteer.launch({headless: false,args:['--proxy-server="socks5://127.0.0.1:9050"']});

但我收到错误 ERR_NO_SUPPORTED_PROXIES。我可以用普通的 Chrome 浏览器运行它。

【问题讨论】:

  • 删除双引号对我有用。即['--proxy-server=socks5://127.0.0.1:9050']

标签: node.js tor puppeteer


【解决方案1】:

在 chromium 中存在一个关于在无头模式下更复杂的代理配置的错误 (Source)。自 2017 年 7 月以来没有任何活动。

但是,我已经能够使用无头铬和 SOCKS5 代理配置运行 Puppeteer (1.3.0)。

const browser = await puppeteer.launch({args: ['--proxy-server=socks5://127.0.0.1:1337']});

尝试更新 Puppeteer,它也会更新捆绑的 Chromium,然后再次运行。似乎您也可能有错字:删除socks5://127.0.0.1:9050之间的"

【讨论】:

    【解决方案2】:

    看起来 puppetetteer 只能通过没有无头模式的代理运行

    【讨论】:

      【解决方案3】:

      基于Running Puppeteer with Tor

      /**************************************************************************
       * IMPORTS
       ***************************************************************************/
      
      const puppeteer = require('puppeteer')
      
      /**************************************************************************
       * DEMOS > USING PUPPETEER BEHIND TOR
       * BASED ON https://medium.com/@jsilvax/running-puppeteer-with-tor-45cc449e5672
       ***************************************************************************/
      
      ;(async () => {
        const browser = await puppeteer.launch({
          args: ['--proxy-server=socks5://127.0.0.1:9050'],
          headless: false,
        })
      
        const page = await browser.newPage()
        await page.goto('https://check.torproject.org/')
      
        const isUsingTor = await page.$eval('body', (el) =>
          el.innerHTML.includes('Congratulations. This browser is configured to use Tor')
        )
      
        if (!isUsingTor) {
          console.log('Not using Tor. Closing...')
          return await browser.close()
        }
      
        console.log('Using Tor. Continuing... ')
      
        // Now you can go wherever you want
        await page.goto('https://www.facebook.com/')
      
        // You would add additional code to do stuff...
      
        // Then when you're done, just close
        await browser.close()
      })()
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-23
        • 2022-06-29
        • 1970-01-01
        相关资源
        最近更新 更多