【问题标题】:how do I set a proxy server in my headless chrome request using Node JS Puppeteer如何使用 Node JS Puppeteer 在无头 chrome 请求中设置代理服务器
【发布时间】:2017-10-26 14:43:57
【问题描述】:

/我在 chrome 上运行无头搜索请求,我需要访问代理服务器/

const puppeteer = require('puppeteer');
var url="https://www.google.com/search?q=";
var keyword="hotels";
var urls;
var desktopUserAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36";
const response=[];
var i=0;
var userAgent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36";

(async () => {

  const browser = await puppeteer.launch({headless: false });
  const page = await browser.newPage();
  urls=url+keyword;

page.setUserAgent(userAgent);
  response[i]=await page.goto(urls);
  console.log(await browser.version());
})();

//我需要能够访问代理服务器才能进行谷歌搜索

【问题讨论】:

    标签: javascript node.js headless-browser puppeteer


    【解决方案1】:

    您可以在参数中传入这样的代理,

    const options = {
            headless: false,
            args: [
                `--proxy-server=${proxyIP:proxyPORT}`,
                `--ignore-certificate-errors`
            ]
    };
    const browser = await puppeteer.launch(options);
    

    如果你想要代理认证,你可以在你的页面对象中使用如下,

    await page.authenticate(user, pass);
    

    【讨论】:

      【解决方案2】:

      我做了一个模块来做这个。它被称为puppeteer-page-proxy。 它支持为整个页面设置代理,或者如果您愿意,它可以为每个请求设置不同的代理。

      首先安装它:

      npm i puppeteer-page-proxy
      

      然后要求它:

      const useProxy = require('puppeteer-page-proxy');
      

      使用起来很简单; 为整个页面设置代理:

      await useProxy(page, 'http://127.0.0.1:8000');
      

      如果你想为每个请求使用不同的代理,那么你可以简单地这样做:

      await page.setRequestInterception(true);
      page.on('request', req => {
          useProxy(req, 'socks5://127.0.0.1:9000');
      });
      

      那么如果你想确定你的页面的IP发生了变化,你可以查一下;

      const data = await useProxy.lookup(page);
      console.log(data.ip);
      

      它支持 httphttpssocks4socks5 代理,如果是,它还支持身份验证需要:

      const proxy = 'http://login:pass@127.0.0.1:8000'
      

      存储库: https://github.com/Cuadrix/puppeteer-page-proxy

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-07
        • 1970-01-01
        • 2023-03-09
        • 2018-08-05
        • 2016-06-18
        • 2018-07-07
        • 2014-09-29
        • 1970-01-01
        相关资源
        最近更新 更多