2

在 crawlera & puppeteer 的基本示例中,代理的授权是这样完成的:

await page.setExtraHTTPHeaders({
   'Proxy-Authorization': 'Basic ' + Buffer.from('<api_key>:').toString('base64'),
});

但它给出了错误:net::ERR_INVALID_ARGUMENT 我已经知道它是由铬引起的。在他们的源代码中,我发现了这个:

// 删除标头不能使预先存在的标头集不安全,但添加标头可以。

因此,我开始使用这个: await page.authenticate({ username:'<api_key>',password:'' });

它适用于 http 页面。但是使用 https 它会给出错误:net::ERR_UNEXPECTED_PROXY_AUTH

有谁知道如何解决这个问题?

我的版本:

  • 无头Chrome/88.0.4298.0
  • 木偶师:“版本”:“5.5.0”,

完整脚本:

const puppeteer = require('puppeteer');

(async () => {
    const browser = await puppeteer.launch({
        ignoreHTTPSErrors: true,
        args: [
            '--proxy-server=proxy.crawlera.com:80',
            '--no-sandbox', 
            '--disable-setuid-sandbox'
        ]
    });
    const page = await browser.newPage();
    await page.authenticate({ username:'<apikey>',password:'' });
    
    
    
    try {
        await page.goto('https://httpbin.scrapinghub.com/get', {timeout: 180000});
    } catch(err) {
        console.log(err);
    }
  
    await browser.close();
})();
4

0 回答 0