Setați ProxyServer din chromedp pe ExecAllocator
Creați contextul browserului din ExecAllocatorul care poartă ProxyServer, astfel încât procesul Chromium vizat să primească flagul său proxy.
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.