Configurar un proxy para las descargas de Python webdriver-manager
Proporciona a Python webdriver-manager un HttpClient consciente del proxy mediante WDMDownloadManager antes de usar el driver path devuelto.
El argumento --proxy-server de Chrome se aplica después de que el navegador arranque. webdriver-manager puede necesitar un proxy antes, mientras busca un controlador compatible y descarga su archivo.
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()
Este fragmento asume las dependencias existentes de webdriver-manager y Requests. El listener de proxy elegido es HTTP para ambos esquemas de destino. Para las descargas públicas de controladores permitidas, la lista de proxies HTTP ofrece candidatos para las URL de proxy de la sesión. Mantén la Session activa hasta que termine la instalación o la consulta de caché del gestor y, después, pasa driver_path a la configuración habitual del servicio Selenium de la aplicación.
El método get personalizado acepta los argumentos HTTP adicionales del gestor y conserva la validación de la respuesta. La elección de proxy pertenece al cliente de descarga; configura Chrome por separado cuando la navegación también necesite un proxy.
trust_env=False hace explícita la configuración de esta sesión, incluida la desactivación de la selección del paquete de CA derivado del entorno. Si la ruta de descarga requiere una CA de la organización, proporciona el paquete previsto en el ajuste verify de esta sesión manteniendo las comprobaciones de certificados.