Playwright Java ผ่าน CDP: ตั้งค่าพร็อกซีบนบริบทเบราว์เซอร์ใหม่
เชื่อมต่อกับ CDP endpoint ของ Chromium แล้วสร้างบริบทที่ตั้งค่าพร็อกซี แยกการเชื่อมต่อควบคุมออกจากเส้นทางออกของเบราว์เซอร์ระยะไกล
เบราว์เซอร์ระยะไกลมีเส้นทางเครือข่ายสองทาง คือการเชื่อมต่อควบคุมของ Java ไปยังบริการเบราว์เซอร์ และคำขอของเบราว์เซอร์ไปยังเว็บไซต์ ตั้งค่าอย่างหลังบนบริบทที่คุณสร้าง
สำหรับบริการ Chromium ที่เปิดเผย CDP endpoint และอนุญาตบริบทใหม่:
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 คือ endpoint ปัจจุบันที่บริการเบราว์เซอร์จัดให้ โทเค็นการยืนยันตัวตนและโปรโตคอลของ endpoint นี้ไม่ขึ้นกับบัญชีพร็อกซีส่งต่อ
การเชื่อมต่อ CDP ใช้ได้กับ Chromium เท่านั้น endpoint ที่ใช้โปรโตคอล Playwright จะใช้ connect แทน การเปลี่ยนส่วนต่อท้าย URL โดยไม่ตรวจสอบโปรโตคอลของบริการไม่ใช่การแปลงที่เชื่อถือได้
พร็อกซีต้องเข้าถึงได้จากโฮสต์ของเบราว์เซอร์ระยะไกล ตัวรับฟัง loopback บนเครื่อง Java ไม่ได้พร้อมใช้ที่นั่นโดยอัตโนมัติ การตั้งค่าของบริบทใหม่ก็ไม่ได้กำหนดค่าบริบทเริ่มต้นที่มีอยู่แล้วหรือการเชื่อมต่อ WebSocket ของ Java ใหม่ด้วย