Ange chromedps ProxyServer på ExecAllocator
Skapa webbläsarkontexten från ExecAllocator som bär ProxyServer, så att den avsedda Chromium-processen får sin proxyflagga.
chromedp.ProxyServer är ett startalternativ för webbläsaren. Använd det på allocatorn som skapar Chromium-processen:
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/"),
)
Koden hör hemma i applikationens befintliga funktion, med vanlig felhantering för err. NewContext ärver allocatorn från allocCtx. En kontext som skapas från en annan förälder kan skapa en annan webbläsare utan det alternativet.
Proxy-URL:en identifierar en HTTP-lyssnare; offentliga kandidater finns i HTTP-proxylistan; sidan förblir ett HTTPS-mål. ProxyServer motsvarar Chromiums --proxy-server-flagga, inte Go:s net/http-proxykonfiguration.
Chromium accepterar inte användarnamn och lösenord inbäddade i en manuell proxy-URL. En autentiserad slutpunkt behöver stödd webbläsarautentisering eller en mellanliggande lösning; att lägga till user:password i den här flaggan är inte detsamma som URL-autentisering i en HTTP-klient. Chromes CDP-autentiseringshändelseflöde är ett stött sätt att hantera den avsedda proxy-utmaningen.
Håll allocatorn vid liv tills webbläsarens arbete är klart. Dess avbrytande hör också till processens städning, medan flikens avbrytande avgränsar den associerade webbläsarkontexten.