用Tor运行Puppeteer

时间:2017-11-20 22:54:19

标签: node.js tor puppeteer

我安装了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浏览器运行它。

3 个答案:

答案 0 :(得分:7)

关于无头模式(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之间的

答案 1 :(得分:1)

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

答案 2 :(得分:1)

基于javaScriptEngine API

/**************************************************************************
 * 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()
})()