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();1 プロセスで複数の国を使う
browser.newContext も同じ proxy オブジェクトを受け取ります。つまり起動中の 1 つのブラウザで、国の異なるコンテキストを同時に持てます。国は username 項目、つまりユーザー名の __cr 接尾辞に入ります。
コンテキストは Cookie とストレージが分離されているため、セッションが混ざることはありません。固定 IP が必要なコンテキストには、server に 10000〜20000 の固定ポートを、コンテキストごとに別の番号で指定します。