Configurer un proxy pour les téléchargements de Python webdriver-manager
Donnez à Python webdriver-manager un HttpClient conscient du proxy via WDMDownloadManager avant d'utiliser le driver path renvoyé.
L'argument --proxy-server de Chrome ne s'applique qu'après le démarrage du navigateur. webdriver-manager peut avoir besoin d'un proxy plus tôt, lorsqu'il recherche un pilote compatible et télécharge son archive.
import requests
from webdriver_manager.chrome import ChromeDriverManager
from webdriver_manager.core.download_manager import WDMDownloadManager
from webdriver_manager.core.http import HttpClient
class ProxyHttpClient(HttpClient):
def __init__(self, session):
self.session = session
def get(self, url, params=None, **kwargs):
kwargs.setdefault('timeout', 30)
response = self.session.get(url, params=params, **kwargs)
self.validate_response(response)
return response
with requests.Session() as session:
session.trust_env = False
session.proxies.update({
'http': 'http://proxy.example:8080',
'https': 'http://proxy.example:8080',
})
downloader = WDMDownloadManager(ProxyHttpClient(session))
driver_path = ChromeDriverManager(download_manager=downloader).install()
Cet extrait suppose les dépendances existantes webdriver-manager et Requests. L'écouteur proxy choisi est HTTP pour les deux schémas de destination. Pour les téléchargements publics de pilotes autorisés, la liste de proxys HTTP fournit des candidats pour les URL de proxy de la session. Gardez la Session active jusqu'à la fin de l'installation ou de la recherche en cache du gestionnaire, puis transmettez driver_path à la configuration habituelle du service Selenium de l'application.
La méthode get personnalisée accepte les arguments HTTP supplémentaires du gestionnaire et conserve la validation de la réponse. Le choix du proxy appartient au client de téléchargement ; configurez Chrome séparément lorsque la navigation a aussi besoin d'un proxy.
trust_env=False rend explicite la configuration de cette session, y compris la désactivation de la sélection du paquet CA dérivé de l'environnement. Si la route de téléchargement exige une CA d'organisation, fournissez le paquet prévu dans le réglage verify de cette session tout en conservant les vérifications de certificats.