CDP 経由の Playwright Java:新しいブラウザーコンテキストにプロキシを設定する
Chromium の CDP エンドポイントに接続し、プロキシを設定したコンテキストを作成します。制御接続とリモートブラウザーの外向き経路は分けたままにします。
リモートブラウザーにはネットワーク経路が二つあります。Java からブラウザーサービスへの制御接続と、ブラウザーからウェブサイトへのリクエストです。後者は作成するコンテキストに設定します。
CDP エンドポイントを公開し、新しいコンテキストを許可する Chromium サービスの場合:
import com.microsoft.playwright.*;
import com.microsoft.playwright.options.Proxy;
try (Playwright playwright = Playwright.create()) {
Browser browser = playwright.chromium().connectOverCDP(cdpEndpoint);
try {
var options = new Browser.NewContextOptions().setProxy(
new Proxy("http://proxy.example:8080")
.setUsername(proxyUser)
.setPassword(proxyPassword));
try (BrowserContext context = browser.newContext(options)) {
context.newPage().navigate("https://www.example.org/");
}
} finally {
browser.close();
}
}
cdpEndpoint はブラウザーサービスが提供する現在のエンドポイントです。その認証トークンとプロトコルは、フォワードプロキシのアカウントとは独立しています。
CDP 接続は Chromium 専用です。Playwright プロトコルのエンドポイントは代わりに connect を使います。サービスのプロトコルを確認せず URL の接尾辞を変えても、確実な変換にはなりません。
プロキシはリモートブラウザーのホストから到達可能でなければなりません。Java マシン上のループバックリスナーは、そこから自動的に使えるわけではありません。新しいコンテキストの設定は、既存のデフォルトコンテキストや Java の WebSocket 接続を再設定するものでもありません。