chromedp.ProxyServer เป็นตัวเลือกในการเปิดเบราว์เซอร์ ให้นำไปใช้กับ allocator ที่สร้างโปรเซส Chromium:

opts := append(chromedp.DefaultExecAllocatorOptions[:],
    chromedp.ProxyServer("http://proxy.example:8080"),
)
allocCtx, cancelAllocator := chromedp.NewExecAllocator(
    context.Background(), opts...,
)
defer cancelAllocator()

tabCtx, cancelTab := chromedp.NewContext(allocCtx)
defer cancelTab()
err := chromedp.Run(tabCtx,
    chromedp.Navigate("https://www.example.com/"),
)

โค้ดนี้อยู่ในฟังก์ชันที่มีอยู่แล้วของแอปพลิเคชัน พร้อมการจัดการข้อผิดพลาดตามปกติสำหรับ err NewContext สืบทอด allocator จาก allocCtx context ที่สร้างจาก parent อื่นอาจสร้างเบราว์เซอร์อื่นโดยไม่มีตัวเลือกนั้น

URL ของ proxy ระบุตัวรับฟัง HTTP; ผู้สมัครสาธารณะมีอยู่ในรายการ HTTP proxy; หน้ายังคงเป็นปลายทาง HTTPS ProxyServer สแมปกับแฟล็ก --proxy-server ของ Chromium ไม่ใช่การกำหนดค่า proxy ของ net/http ใน Go

Chromium ไม่ยอมรับชื่อผู้ใช้และรหัสผ่านที่ฝังอยู่ใน URL ของ proxy แบบกำหนดเอง ปลายทางที่ต้องยืนยันตัวตนต้องใช้การยืนยันตัวตนของเบราว์เซอร์ที่รองรับหรือการจัดวางตัวกลาง การเพิ่ม user:password ในแฟล็กนี้ไม่เท่ากับการยืนยันตัวตนผ่าน URL ใน HTTP client ลำดับเหตุการณ์การยืนยันตัวตนของ CDP ใน Chrome เป็นหนึ่งในวิธีที่รองรับสำหรับจัดการความท้าทายของ proxy ที่ต้องการ

เก็บ allocator ให้มีชีวิตอยู่จนงานของเบราว์เซอร์เสร็จ การยกเลิกก็เป็นส่วนหนึ่งของการทำความสะอาดโปรเซส ขณะที่การยกเลิกแท็บกำหนดขอบเขต context ของเบราว์เซอร์ที่เกี่ยวข้อง

บทความที่เกี่ยวข้อง