【发布时间】:2019-10-29 18:26:57
【问题描述】:
在 puppeteer 中使用无头浏览器时遇到问题。
我需要为我正在路由的代理设置一个标头。这不是问题。 Puppeteer 有一个方法 .setExtraHTTPHeaders() 可以让这变得非常简单。
但是,如果我请求的页面使用 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');
【问题讨论】: