Puppeteer 25.16.0 在创建浏览器上下文时提供 proxyServer 选项。对于已存在的 Chromium 浏览器,新上下文中的页面可以使用选定的中间代理,包括来自HTTP 代理列表的公共 HTTP 候选节点:

const context = await browser.createBrowserContext({
  proxyServer: 'http://proxy.example:8080',
});
try {
  const page = await context.newPage();
  await page.goto('https://www.example.com/');
} finally {
  await context.close();
}

为第二条路由再创建一个使用不同 proxyServer 的上下文。同一上下文中创建的两个页面共享该上下文的代理策略;仅仅新开一个标签页并不会选定新的出口端点。

该选项名为 proxyServer。较早的 createIncognitoBrowserContext 示例属于上一代 API。

BrowserContextOptions 同样接受 proxyBypassList。请把直连例外保留在该上下文的策略中,而不要假定它们来自其他上下文。

对于受支持的用户名/密码 HTTP 代理,Page.authenticate 会在导航前提供凭据。代理 URL 负责选定中间代理,认证调用负责提供账号。

这属于浏览器网络层。若某个包拦截页面请求并用 Node HTTP 客户端的响应来填充,就会形成不同的传输路径,其 cookie、header 与 TLS 行为也各不相同。

调用方仍然负责共享浏览器的生命周期。关闭一个上下文会关闭其关联页面,但不会结束其他上下文。

相关文章