Playwright:代理认证与协议如何选择
更新于 2026-09-21
区分 HTTP 认证和 SOCKS5 支持,避免将带密码的 S5 直接配置给浏览器。
先确认协议
Playwright 官方支持为浏览器或上下文配置 HTTP(S) 与 SOCKSv5 代理,但文档明确列出的 username/password 认证用于 HTTP(S)。不能据此认为带账号密码的 SOCKS5 在所有浏览器内核上都能直接使用。
使用 HTTP 代理认证
仅当你的商品确实提供 HTTP 接入方式时使用此配置。先从交付页或动态生成页面选择 HTTP(S),不要只把 SOCKS5 URL 的前缀改成 http 并猜测端口。
import { chromium } from 'playwright';
const { SF_HTTP_PROXY: server, SF_PROXY_USER: username,
SF_PROXY_PASSWORD: password } = process.env;
if (!server || !username || !password) throw new Error('缺少 HTTP 代理配置');
const browser = await chromium.launch({
proxy: { server, username, password }
});
try {
const page = await browser.newPage();
await page.goto('https://api.ipify.org', { timeout: 30000 });
console.log(await page.locator('body').innerText());
} finally {
await browser.close();
}
SF_HTTP_PROXY 应为商品提供的 http://接入地址:接入端口;账号密码通过运行环境提供。
只有带认证的 SOCKS5 时
选用明确支持该认证方式的客户端,或经过验证的本机代理转接方案。转接服务只监听本机并妥善保存认证信息,不能开放成无认证的公网代理。
验证与排查
先访问出口查询页,再访问自己的测试站点。浏览器能启动但连接失败时,检查协议、端口和认证能力;目标网站拒绝请求时,查看页面状态,不要直接判断是 IP 失效。
