Définir ProxyServer de chromedp sur l'ExecAllocator
Créez le contexte du navigateur à partir de l'ExecAllocator qui porte ProxyServer, afin que le processus Chromium visé reçoive son drapeau proxy.
chromedp.ProxyServer est une option de lancement du navigateur. Appliquez-la à l'allocateur qui crée le processus 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/"),
)
Le code appartient à la fonction existante de l'application, avec la gestion d'erreurs habituelle pour err. NewContext hérite de l'allocateur depuis allocCtx. Un contexte créé à partir d'un autre parent peut créer un autre navigateur sans cette option.
L'URL du proxy désigne un écouteur HTTP ; des candidats publics sont disponibles dans la liste de proxys HTTP ; la page reste une destination HTTPS. ProxyServer correspond au drapeau --proxy-server de Chromium, et non à la configuration de proxy net/http de Go.
Chromium n'accepte pas d'identifiants intégrés dans une URL de proxy manuelle. Un point de terminaison authentifié nécessite une authentification de navigateur prise en charge ou un dispositif intermédiaire ; ajouter user:password à ce drapeau n'équivaut pas à l'authentification par URL d'un client HTTP. Le flux d'événements d'authentification CDP de Chrome est une voie prise en charge pour traiter le défi de proxy visé.
Gardez l'allocateur vivant jusqu'à la fin du travail du navigateur. Son annulation fait aussi partie du nettoyage du processus, tandis que l'annulation de l'onglet délimite le contexte de navigateur associé.