Configurar ProxyServer de chromedp en el ExecAllocator
Crea el contexto del navegador desde el ExecAllocator que lleva ProxyServer para que el proceso de Chromium previsto reciba su flag de proxy.
chromedp.ProxyServer es una opción de lanzamiento del navegador. Aplícala al allocator que crea el proceso de 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/"),
)
El código pertenece a la función existente de la aplicación, con el manejo de errores habitual para err. NewContext hereda el allocator de allocCtx. Un contexto creado desde otro padre puede crear un navegador distinto sin esa opción.
La URL del proxy identifica un escucha HTTP; hay candidatos públicos en la lista de proxies HTTP; la página sigue siendo un destino HTTPS. ProxyServer se corresponde con el flag --proxy-server de Chromium, no con la configuración de proxy de net/http en Go.
Chromium no acepta credenciales de usuario y contraseña incrustadas en una URL de proxy manual. Un punto final autenticado necesita una autenticación de navegador compatible o un esquema intermediario; añadir user:password a este flag no equivale a la autenticación por URL de un cliente HTTP. El flujo de eventos de autenticación CDP de Chrome es una vía compatible para gestionar el desafío de proxy previsto.
Mantén vivo el allocator hasta que termine el trabajo del navegador. Su cancelación también forma parte de la limpieza del proceso, mientras que la cancelación de la pestaña delimita el contexto de navegador asociado.