Playwright 走代理:在 launch 或 newContext 的 proxy 对象里填主机、端口、用户名、密码。 它不读系统代理,也不读你在终端 export 的 HTTP_PROXY。先用同一条接入在 curl 里看到正确出口,再写进浏览器进程。
网页出口先接动态住宅。本篇只讲自动化浏览器怎么接到网关,不是采集教程,也不教绕过登录墙。
该写进 Playwright、不该写进 Playwright
该写:脚本要打开公开页,看目标国家的文案、排版或跳转;同一套用例换几个国家跑。控制台生成 HTTP/HTTPS 接入,把主机写成 http://主机:端口,账密放在 username / password,不要塞进主机字符串里和字段各写一份。
不该写:只想本机 Chrome 人手点——用扩展,见Chrome代理扩展。只想确认这条接入能通——用 curl使用代理。以为开了桌面系统代理或 shell 环境变量,Playwright 就会自动走——Chromium 进程不吃这两套。公司电脑锁了系统代理,也不等于 Playwright 已经出网;没填 proxy 就仍是跑脚本那台机器的宽带。
动态住宅按 GB,起步 $0.79/GB。池是 超9000万合规采集,国家按控制台在线列表选(公开页写 195+)。Playwright 只决定「这个浏览器进程怎么连网关」,不决定你买的是动态还是静态。
客户端只要 SOCKS5 栏时,把 server 写成 socks5://主机:端口。换协议不会把住宅流量转到机房或移动池。协议怎么选,见HTTP代理和SOCKS5哪个好。
launch 和 context 差在哪
| 你怎么启动 | 代理作用范围 | 容易踩的坑 |
|---|---|---|
chromium.launch({ proxy }) |
这个浏览器里后来建的 context 都走同一条接入 | 启动后再 newContext 另写一套,两套会打架 |
browser.newContext({ proxy }) |
只这个 context | launch 时没代理、这个 context 也漏了,页面仍走本机 |
| 只设环境变量 | Playwright 的 Chromium 不保证会读 | 页面能开、出口仍是机房宽带 |
字段就四个:server、username、password,有的版本还有 bypass。bypass 写的是不走代理的主机,比如本机调试页。不要把目标站域名填进 bypass 然后抱怨没换出口。
用户名密码里的 @、:、# 按 URL 编码后再填,或按控制台给出的原样填进独立字段。填完用同一组在 curl 的 -x 对一下。窗口逐步图在如何使用动态住宅代理。接口字段以文档为准。
需要同一个 IP 撑一会儿,用粘性会话;订购期内固定地址才买静态住宅。对方说的短效 / 长效 / 包时,用粘性、按 GB、按 IP 理解即可。
页面开了但出口没变
打开 IP 查询页或你有权检查的公开页,看出口国家和 IP。网关 7×24 监控,网络成功率 99.97% 管连通,不管某一个网站给你哪套页面。页面能开但出口仍是宽带,多半是 proxy 没挂到这个 context,或 bypass 把这个域名漏出去了。
- 407:网关收到了请求,不接受认证。先对
username/password是否和控台同一条,再看有没有和白名单一起开,见407代理认证失败。白名单填的是跑脚本这台机器此刻的公网 IP,不是 Playwright 里看到的出口。 - 连不上 / 超时:先确认
server的协议、主机、端口和生成结果一致。不要为了出网关掉证书校验。 - curl 通、Playwright 不通:两边不是同一条通道。curl 走
-x,Playwright 只认自己的proxy。不要再叠一层系统代理。 - 隐式复用了旧浏览器:有的启动参数会连上已经开着的 Chrome。那个进程没有你刚写的
proxy。关掉旧实例,让 Playwright 自己拉一个带代理的 Chromium。
不要把本篇当成未授权访问或绕过验证码的教程。频率和目标站条款由你负责。套餐以定价为准。只在官方网站购买,开始使用无需信用卡。