chromedp.ProxyServer é unha opción de lanzamento do navegador. Aplícaa ao allocator que crea o 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/"),
)

O código pertence á función existente da aplicación, co tratamento de erros habitual para err. NewContext herda o allocator de allocCtx. Un contexto creado desde outro pai pode crear un navegador distinto sen esa opción.

O URL do proxy identifica un oínte HTTP; hai candidatos públicos na lista de proxies HTTP; a páxina segue a ser un destino HTTPS. ProxyServer corresponde coa flag --proxy-server de Chromium, non coa configuración de proxy net/http de Go.

Chromium non acepta credenciais de usuario e contrasinal incrustadas nun URL de proxy manual. Un punto final autenticado necesita unha autenticación de navegador compatible ou un esquema intermediario; engadir user:password a esta flag non equivale á autenticación por URL dun cliente HTTP. O fluxo de eventos de autenticación CDP de Chrome é unha vía compatible para xestionar o desafío de proxy previsto.

Mantén vivo o allocator ata que remate o traballo do navegador. A súa cancelación tamén forma parte da limpeza do proceso, mentres que a cancelación da pestana delimita o contexto de navegador asociado.

Artigos relacionados