在 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();
})();