chromedp.ProxyServer este o opțiune de lansare a browserului. Aplicați-o pe allocatorul care creează procesul 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/"),
)

Codul aparține funcției existente a aplicației, cu tratarea obișnuită a erorilor pentru err. NewContext moștenește allocatorul din allocCtx. Un context creat dintr-un alt părinte poate crea un browser diferit fără acea opțiune.

URL-ul proxy identifică un ascultător HTTP; candidați publici sunt disponibili în lista de proxy HTTP; pagina rămâne o destinație HTTPS. ProxyServer corespunde flagului --proxy-server al Chromium, nu configurației proxy net/http din Go.

Chromium nu acceptă nume de utilizator și parolă încorporate într-un URL proxy manual. Un endpoint autentificat necesită autentificare de browser acceptată sau o soluție intermediară; adăugarea user:password la acest flag nu este echivalentă cu autentificarea URL într-un client HTTP. Fluxul de evenimente de autentificare CDP din Chrome este una dintre căile acceptate pentru a trata provocarea proxy dorită.

Păstrați allocatorul viu până când munca browserului se încheie. Anularea lui face parte și din curățarea procesului, iar anularea filei delimitează contextul browserului asociat.

Articole similare