如何在 Playwright、Puppeteer、Selenium 配置代理?
按自动化工具选择代理与认证入口,区分动态账密、静态实例及 Selenium 的接入限制。
只只HTTP技术团队维护更新于 2026年10月7日
浏览器自动化的代理配置由执行进程控制,普通浏览器里设置成功不代表脚本已经使用。下面按工具确认入口和认证方式。
步骤一:获取只只HTTP代理信息
- 动态住宅:进入“动态住宅网络 → 账密认证”,取得
us.zzhttp.com、端口7878、生成的完整代理用户名和对应子账号密码;协议按工具选择 HTTP 或 SOCKS5 TCP。先确认实名、权益、共享流量和子账号状态。 - 静态住宅:进入“静态住宅网络 → IP 管理”,复制已交付、可用且未到期实例的实际 IP、端口与独立代理账密。静态购买无需实名认证,不使用动态网关、子账号或客户白名单。
详细获取步骤见账密认证和静态住宅首次连接。代理密码不是控制台登录密码。
步骤二:按工具配置代理和认证
| 工具 | 端点入口 | 认证入口与注意事项 |
|---|---|---|
| Playwright | 启动浏览器或创建上下文时的 proxy.server | HTTP 的 proxy.username、proxy.password;详见既有示例 |
| Puppeteer | 启动参数 --proxy-server=http://主机:端口 | 页面导航前调用 page.authenticate({username, password}),不要只把账密塞到启动参数 |
| Selenium + Chromium | 浏览器代理能力或 --proxy-server 只设置端点 | 普通代理端点配置不能自动解决账密认证;既有示例使用动态 API 提取与来源白名单,不能直接用于静态实例 |
Playwright 与 Puppeteer 的 HTTP 账密分别填入动态完整用户名/子账号密码,或静态实例独立凭据。Chromium 的 SOCKS5 用户名密码认证限制不因使用自动化框架而消失,优先使用 HTTP 账密。
Selenium 静态用户需要先选用并验证支持 HTTP 代理认证的驱动接入方案;没有认证处理时无法仅凭端口完成配置。可以先使用 Playwright 的 HTTP 账密方式验证实例。Selenium 既有示例属于动态 API 提取流程,不让静态用户创建动态白名单。
步骤三:保存配置并启动任务
- 将端点和凭据从运行时私有配置注入,不写入代码仓库或输出日志。
- 在发出首个请求前完成代理和认证设置。Playwright 修改代理后创建新的浏览器或上下文;Puppeteer 在页面导航前完成认证。
- 每个任务明确使用对应上下文/用户数据目录,限制并发,结束后关闭页面和进程。多个上下文使用同一实例不会自动获得不同 IP。
步骤四:验证出口
先运行只有检测页的最小任务,读取 https://ipinfo.io/json 的响应,再增加目标操作。检测必须发生在刚启动的自动化上下文内,不用终端直连结果代替浏览器结果。
验证代理是否生效
在真正执行任务的环境中打开或请求 https://ipinfo.io/json,核对 ip、country、region,并与该环境未启用代理时的出口比较。动态网关主机与出口 IP 不相同,不要求检测结果等于网关解析地址。静态按实例标称出口核对;地区数据库可能存在偏差。再访问允许测试的 HTTPS 页面确认链路。
常见问题
- 连接失败或超时:核对端点、端口、协议和执行环境网络,见连接失败排查。
- 认证失败:动态核对完整用户名、子账号、权益与实际连接来源;静态核对实例当前凭据与有效期,不能靠补动态白名单解决。见407 排查。
- 仍显示原出口:确认代理已绑定到实际设备或任务,排除绕过列表、其他代理覆盖和旧配置。
- 检测成功但目标失败:目标站点的
403、429、页面变化和代理连接错误分别排查,先降低并发并查看实际错误。
需要长期保持同一出口时使用静态实例;动态粘性会话只在配置的会话周期内保持,不等于永久固定 IP。多个设备使用同一实例仍可能共用出口。截图、日志和任务导出中不要暴露完整凭据。
这篇内容解决了你的问题吗?
反馈只用于改进公开文档,不会提交账号或请求信息。