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 연결을 다시 구성하지도 않습니다.