Налаштувати ProxyServer із chromedp на ExecAllocator
Створіть контекст браузера з ExecAllocator, що несе ProxyServer, щоб потрібний процес Chromium отримав свій прапорець проксі.
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 — один із підтримуваних способів упоратися з потрібним проксі-викликом.
Тримайте алокатор живим, доки робота браузера не завершиться. Його скасування також входить до очищення процесу, а скасування вкладки обмежує пов'язаний контекст браузера.