【问题标题】:Unable to use proxy with puppeteer. Error: ERR_NO_SUPPORTED_PROXIES gets thrown无法将代理与 puppeteer 一起使用。错误:ERR_NO_SUPPORTED_PROXIES 被抛出
【发布时间】:2018-08-28 20:04:09
【问题描述】:

如何使用 puppeteer 设置代理?我尝试了以下方法:

(async () => {
    const browser = await puppeteer.launch({
        headless: false,
        args: [
            '--proxy-server=http://username:password@zproxy.luminati.io:22225'
        ]
    });
    const page = await browser.newPage();
    await page.goto('https://www.whatismyip.com/');
    await page.screenshot({ path: 'example.png' });

    //await browser.close();
})();

但它不起作用,我收到消息:

Error: net::ERR_NO_SUPPORTED_PROXIES at https://www.whatismyip.com/

在控制台上。如何正确使用代理?

我还尝试了以下方法:

const browser = await puppeteer.launch({
        headless: false,
        args: [
            '--proxy-server=zproxy.luminati.io:22225'
        ]
    });

 const page = await browser.newPage();

 page.authenticate({
        username: 'username',
        password: 'password'
 })

 await page.goto('https://www.whatismyip.com/');

但结果相同。

【问题讨论】:

    标签: javascript node.js puppeteer


    【解决方案1】:
    (async () => {
        // install proxy-chain  "npm i proxy-chain --save"
        const proxyChain = require('proxy-chain');
    
        // change username & password
        const oldProxyUrl = 'http://lum-customer-USERNAMEOFLUMINATI-zone-static-country-us:PASSWORDOFLUMINATI@zproxy.lum-superproxy.io:22225';
        const newProxyUrl = await proxyChain.anonymizeProxy(oldProxyUrl);
    
        const browser = await puppeteer.launch({
            headless: false,
            args: [
                '--no-sandbox',
                '--disable-setuid-sandbox',
                `--proxy-server=${newProxyUrl}`
            ]
        });
    
        const page = await browser.newPage();
        await page.goto('https://www.whatismyip.com/');
        await page.screenshot({ path: 'example.png' });
    
        await browser.close();
    })();
    

    【讨论】:

    • 这应该被检查为正确的答案。这解决了这个问题。
    【解决方案2】:

    Chrome 无法处理代理 URL 中的用户名和密码。使用 page.authenticate 的第二个选项应该可以工作

    (async () => {
      const browser = await puppeteer.launch({
            headless: false,
            args: [
                '--proxy-server=zproxy.luminati.io:22225'
            ]
        });
    
     const page = await browser.newPage();
    
     // do not forget to put "await" before async functions
     await page.authenticate({        
            username: 'username',
            password: 'password'
     })
    
     await page.goto('https://www.whatismyip.com/');
     ...
    })();
    

    【讨论】:

      【解决方案3】:

      args 中删除双引号后对我来说效果很好。

      https://github.com/puppeteer/puppeteer/issues/1074#issuecomment-359427293

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-02-13
        • 2019-01-25
        • 2020-05-14
        • 2019-05-18
        • 2018-04-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多