proxys.store

在 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 的粘性端口,每个上下文用不同的一个。

继续阅读