在 Playwright 中使用代理
代理在启动浏览器时或按上下文设置,账号密码是独立字段,不写在地址里。
带代理启动
server 字段只写协议、主机和端口。Playwright 要求账号密码单独放在 username 与 password 中:http://账号:密码@主机 这种写法在这里无效。
import { chromium } from "playwright";
const browser = await chromium.launch({
proxy: {
server: "http://gw.dataimpulse.com:823",
username: "LOGIN__cr.de",
password: "PASSWORD",
},
});
const page = await browser.newPage();
await page.goto("https://ipinfo.io/json");
console.log(await page.textContent("body"));
await browser.close();同一进程内使用多个国家
browser.newContext 接受同样的 proxy 对象,因此一个浏览器实例可以同时持有多个不同国家的上下文——国家写在 username 字段中,即账号的 __cr 后缀。
各上下文的 cookie 与存储彼此隔离,会话不会串。若某个上下文需要固定 IP,就在 server 中填 10000–20000 的粘性端口,每个上下文用不同的一个。