在puppeteer中使用无头浏览器时,我遇到了一个问题。
我需要为要路由通过的代理设置标头。这不是问题。 Puppeteer具有.setExtraHTTPHeaders()方法,使此操作非常容易。
但是,如果我请求的页面使用的是HTTPS(在大多数情况下是HTTPS),那么我的代理将永远不会看到此标头,因为它显然会在通过时被加密。
这是否有可能实现?如果可以,怎么办?
下面是我一直在使用的一个简单示例。如果我使用 http 请求httpbin.org/ip网站,那么它可以完美运行。如果我通过 https 请求它,那么它可以工作,但是我的标头在中间丢失并且不起作用。
const browser = await puppeteer.launch({
headless: true,
ignoreHTTPSErrors: true,
args: [
'--no-sandbox',
`--proxy-server=my.proxy.url:00000`
]
});
const page = await browser.newPage();
await page.setExtraHTTPHeaders({
'SOME_HEADER_TO_SET': 'VALUE'
});
await page.goto('https://httpbin.org/ip');
答案 0 :(得分:0)
也许您可以改为将身份验证添加到代理URL中?
const browser = await puppeteer.launch({
headless: true,
ignoreHTTPSErrors: true,
args: [
'--no-sandbox',
'--proxy-server=username:password@my.proxy.url:00000'
]
});