chromedp.ProxyServer — це параметр запуску браузера. Застосуйте його до алокатора, який створює процес 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 успадковує алокатор з allocCtx. Контекст, створений від іншого батька, може створити інший браузер без цього параметра.

URL проксі позначає HTTP-слухач; публічні кандидати доступні в списку HTTP-проксі; сторінка залишається HTTPS-призначенням. ProxyServer відповідає прапорцю --proxy-server Chromium, а не налаштуванню проксі net/http у Go.

Chromium не приймає ім'я користувача та пароль, вбудовані в URL проксі, заданий вручну. Для автентифікованої кінцевої точки потрібна підтримувана автентифікація браузера або проміжна схема; додавання user:password до цього прапорця не дорівнює автентифікації URL в HTTP-клієнті. Потік подій автентифікації CDP у Chrome — один із підтримуваних способів упоратися з потрібним проксі-викликом.

Тримайте алокатор живим, доки робота браузера не завершиться. Його скасування також входить до очищення процесу, а скасування вкладки обмежує пов'язаний контекст браузера.

Схожі статті