6500万+住宅 IP 数量
74覆盖国家
<0.3秒平均连接延迟
1 GB免费试用流量
Playwright 代理代码示例
BytesFlows 使用标准 HTTP 代理协议,可直接写入 Playwright 的 launchOptions 或 newContext。
playwright-proxy.js
const { chromium } = require('playwright');
const browser = await chromium.launch({
proxy: {
server: 'http://p1.bytesflows.com:8001',
username: '你的代理用户名',
password: '你的代理密码',
},
});
const page = await browser.newPage();
await page.goto('https://httpbin.org/ip');
// 输出真实住宅 IP
console.log(await page.textContent('body'));
await browser.close();在 BytesFlows 控制台 → 代理 → 住宅代理 → 子账号 中创建子账号,获取用户名和密码。
Playwright 如何通过 BytesFlows 路由流量
Playwright 的 proxy 选项将所有页面请求转发到住宅代理网关,无需浏览器扩展或系统级代理配置。
🖥️
Playwright 脚本
Node.js 或 Python 脚本调用 chromium.launch() 并传入代理凭证
🔐
认证握手
BytesFlows 网关验证子账号凭证,并根据用户名中的地区参数选择出口节点
🏠
住宅出口节点
流量从匹配地区的真实家庭宽带 IP 出口,符合指定国家或城市的真实用户特征
🌐
目标网站
目标网站看到的是真实住宅 IP,与该地区的有机用户访问行为完全一致
所有 Playwright 浏览器引擎(Chromium、Firefox、WebKit)使用相同的代理配置 API,SOCKS5 和 HTTP 均支持。
Playwright + 代理技术问答
Playwright 是否原生支持 SOCKS5 代理?
支持。将 server 设置为 socks5://p1.bytesflows.com:1080 即可。Playwright 的 Chromium、Firefox 和 WebKit 三种引擎自 1.8 版本起均原生支持 SOCKS5 代理。
如何防止 Playwright 通过 WebRTC 泄露真实 IP?
Playwright 的 Chromium 构建版本默认不启用 WebRTC。对于 Firefox context,可通过浏览器参数显式禁用 media.peerconnection.enabled。BytesFlows 住宅 IP 的地理位置与 DNS 解析保持一致,可减少 IP 地理位置不一致导致的检测信号。
住宅出口节点离线后,Playwright 会怎样?
BytesFlows 会自动将流量切换到同一节点池中的健康节点。如果使用了长效会话(session ID),会话可能会被分配到同一地区的新节点上。对于关键业务流程,建议在脚本中实现重试逻辑,并在切换后验证新的出口 IP。
如何在 Docker 容器中使用 Playwright + BytesFlows?
在容器内运行 playwright install 后,通过环境变量或直接在 launchOptions 中配置代理即可。BytesFlows 使用标准 HTTP/SOCKS5 出站连接(端口 8001 或 1080),无需特殊的容器网络配置。