Playwright
Playwright 对代理有一等支持——直接把凭证传给 launch() 或 new_context(),无需扩展技巧。
Python
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch(proxy={
"server": "http://gate.helodata.io:7777",
"username": "helo_s1a2b3c4d5e-type-res-region-us",
"password": "PASSWORD",
})
page = browser.new_page()
page.goto("https://ipv4.icanhazip.com")
print(page.content())
browser.close()SOCKS5 用 "server": "socks5://gate.helodata.io:7777",DNS 由代理解析。
Node.js
import { chromium } from "playwright";
const browser = await chromium.launch({
proxy: {
server: "http://gate.helodata.io:7777",
username: "helo_s1a2b3c4d5e-type-res-region-us",
password: "PASSWORD",
},
});
const page = await browser.newPage();
await page.goto("https://ipv4.icanhazip.com");
console.log(await page.content());
await browser.close();按 Context 配代理
不同浏览器 Context 用不同代理——适合并发会话:
浏览器进程共享,Context 之间彼此隔离,像独立的 profile。
ISP
Playwright 中轮换会话
每个 Context 生成新的子账号字符串,带独立 session-XXX:
验证
常见陷阱
代理认证无需 headless 特殊参数 — Playwright 在 headful/headless 下都原生支持。
WebRTC 泄露 — Playwright 默认不通过 WebRTC 暴露本机 IP,若目标会嗅探请用
browserleaks.com/webrtc复核。绕过清单 — 用
proxy.bypass = "localhost,127.0.0.1"避免把内网目标也代理出去。
最后更新于
这有帮助吗?