chromedp.ProxyServer è un'opzione di avvio del browser. Applicala all'allocator che crea il processo 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/"),
)

Il codice va nella funzione esistente dell'applicazione, con la normale gestione degli errori per err. NewContext eredita l'allocator da allocCtx. Un contesto creato da un altro parent può creare un browser diverso senza quell'opzione.

L'URL del proxy identifica un listener HTTP; candidati pubblici sono disponibili nella lista di proxy HTTP; la pagina resta una destinazione HTTPS. ProxyServer corrisponde al flag --proxy-server di Chromium, non alla configurazione proxy di net/http in Go.

Chromium non accetta nome utente e password incorporati in un URL proxy manuale. Un endpoint autenticato richiede un'autenticazione del browser supportata o una soluzione intermediaria; aggiungere user:password a questo flag non equivale all'autenticazione URL di un client HTTP. Il flusso di eventi di autenticazione CDP di Chrome è una via supportata per gestire la sfida proxy prevista.

Mantieni vivo l'allocator finché il lavoro del browser non è completato. La sua cancellazione fa parte anche della pulizia del processo, mentre la cancellazione della scheda delimita il contesto del browser associato.

Articoli correlati