如何在 Playwright 中设置代理(浏览器级与 Per-Context 认证)

更新于:

Playwright 原生支持 HTTP 代理认证(server、username、password),适用于 Chromium、Firefox 和 WebKit,无需安装任何浏览器扩展或第三方封装库。更强大的是,Playwright 的 Per-Context Proxy(独立上下文代理)功能允许单个浏览器实例同时运行数十个相互隔离的 BrowserContext 会话,每个会话均绑定各自独立的 VinaProxy 静态 IP。

Playwright · HTTP Proxy Format
proxy={ server: 'http://ip:port', username: 'user', password: 'pass' }
独享IPv4(机房)
🇺🇸 United States
有货
低至
₫20,000 / IP / 月
≈ US$0.74 · 以VND结算
批量阶梯价格
  • 1 个IP₫40,000
  • 5+ 个IP₫35,000
  • 10+ 个IP₫25,000
  • 20+ 个IP₫25,000
  • 50+ 个IP₫25,000
  • 100+ 个IP₫25,000
  • 200+ 个IP₫25,000
  • 500+ 个IP₫25,000
  • 1000+ 个IP₫22,000
  • 2000+ 个IP₫20,000
购买United States代理
静态住宅ISP
🇻🇳 Vietnam
有货
低至
₫25,000 / IP / 月
≈ US$0.93 · 以VND结算
批量阶梯价格
  • 1 个IP₫50,000
  • 3+ 个IP₫40,000
  • 5+ 个IP₫40,000
  • 10+ 个IP₫32,000
  • 50+ 个IP₫30,000
  • 100+ 个IP₫30,000
  • 200+ 个IP₫30,000
  • 500+ 个IP₫25,000
购买Vietnam代理

Playwright 代理对象配置参数

无论是在 chromium.launch({ proxy }) 中进行全局配置,还是在 browser.newContext({ proxy }) 中为单独会话配置,均使用统一的 proxy 配置对象:

Playwright 属性取值格式技术说明
server'http://ip:port'仅包含主机和端口,必须附带 http:// 前缀
username'user'来自 VinaProxy 控制台的代理用户名
password'pass'代理密码(Playwright 原生处理 HTTP 407 认证)
bypass'localhost,127.0.0.1'可选参数,以逗号分隔的跳过代理的目标主机列表

高效运行多 IP BrowserContext 的最佳实践

  • 在 Windows 和 macOS 上,若打算在各 browser.newContext() 中单独覆盖 proxy,必须在 chromium.launch() 中传入占位参数 proxy: { server: 'http://per-context' } 激活 Chromium 动态路由
  • 在 browser.newContext() 中将 timezoneId 与 locale 与代理 IP 所在地理位置保持一致,确保请求头与 JavaScript Intl API 匹配目标地区
  • 利用 page.route() 拦截并中止不必要的图片与字体资源请求,显著提高数据采集吞吐量

操作步骤

  1. 1

    获取 IP、端口、用户名与密码

    从 VinaProxy 控制台复制你的 ip:port:user:pass 认证凭据。

  2. 2

    将 proxy 对象传入 newContext()

    调用 const context = await browser.newContext({ proxy: { server: 'http://ip:port', username: 'user', password: 'pass' } })。

  3. 3

    对齐 timezoneId 和 locale 设置

    配置与代理所在地区相符的 timezoneId 与 locale(例如 America/New_York 或 Asia/Ho_Chi_Minh)。

  4. 4

    在新建页面中验证出口 IP

    创建新标签页 const page = await context.newPage() 并请求 https://vinaproxy.com/api/my-ip 查看返回的公网 IP。

常见问题

为什么 Playwright 报错 'Proxy is only supported when browser is launched with a proxy'?

在 Windows 和 macOS 上,Chromium 要求在启动时提供全局代理启动参数,之后才允许每个上下文覆盖代理。请使用 chromium.launch({ proxy: { server: 'http://per-context' } }) 启动浏览器,再在各 browser.newContext({ proxy }) 中传入真实代理。

Playwright 的 Firefox 和 WebKit 核心也支持 VinaProxy 代理吗?

是的。在 Node.js 和 Python 环境中,Chromium、Firefox 和 WebKit 均支持完全一致的 proxy: { server, username, password } 语法。

无头模式运行 Playwright 浏览器会产生流量计费吗?

不会。所有 VinaProxy 独享 IPv4 与静态 ISP 套餐均包含无限制月度流量。

使用独享静态 IP 扩展 Playwright BrowserContext 会话

覆盖全球 7 大区域的高速无限制 HTTP(S) 静态代理。

购买 Playwright 代理

相关文章

按平台选择代理
网络爬虫代理:面向 24/7 爬虫的不限流量独享 IPv4 与 ISP 代理池
为 Python、Playwright、Selenium 和 Scrapy 提供高速 HTTP(S) 独享 IPv4 与静态 ISP 代理,享无限月度流量。
代理配置教程
如何在 Puppeteer 中配置带认证的代理(Node.js 指南)
在 Node.js Puppeteer 中配置带身份验证的 HTTP(S) 代理:通过 --proxy-server 启动参数与 await page.authenticate() 结合实现稳定代理连接。
代理配置教程
如何在Selenium WebDriver中配置带认证的代理
通过selenium-wire或Chrome onAuthRequired扩展在Selenium WebDriver中配置带账号密码认证的HTTP(S)代理。
代理配置教程
如何在Python Requests中使用代理(HTTP/HTTPS与Session连接池)
在Python requests与requests.Session()中配置带认证的HTTP(S)代理。解决407 ProxyError异常并实现静态IP池轮换。
按平台选择代理
SEO 与 SERP 排名追踪代理:精准监测 7 国搜索结果排名
追踪精准本地化关键词排名,审查 Geo 重定向,并使用不限流量独享 IPv4 与静态 ISP 代理运行 Screaming Frog 全站抓取。
按平台选择代理
Shopee代理IP:为每个卖家中心店铺分配独立静态IP
安全运营多家Shopee卖家中心店铺,避免账号关联封禁。提供越南静态ISP与独享IPv4私有代理。
IPV4 · united states
美国独享IPv4代理:专用于大数据采集、SEO追踪与广告验证的高速美国IP
美国独享IPv4代理:专用于数据爬取、排名跟踪、广告验证及亚马逊调研。静态独享IP,不限流量,快速开通。
ISP · vietnam
越南静态ISP代理:为核心高价值资产量身打造的家庭宽带固定越南IP
越南静态ISP代理:原生家庭宽带IP,专为Shopee主店、TikTok Shop、Facebook广告账号及Zalo OA打造的固定越南IP。