Proxy für Python webdriver-manager-Downloads konfigurieren
Geben Sie Python webdriver-manager über WDMDownloadManager einen proxyfähigen HttpClient, bevor der zurückgegebene driver path verwendet wird.
Das Argument --proxy-server von Chrome greift erst, nachdem der Browser gestartet ist. webdriver-manager braucht möglicherweise früher einen Proxy, nämlich beim Suchen eines passenden Treibers und beim Herunterladen seines Archivs.
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()
Dieses Fragment setzt die vorhandenen Abhängigkeiten webdriver-manager und Requests voraus. Der gewählte Proxy-Listener ist HTTP für beide Zielschemas. Für erlaubte öffentliche Treiber-Downloads liefert die HTTP-Proxy-Liste Kandidaten für die Proxy-URLs der Sitzung. Halten Sie die Session am Leben, bis die Installation oder der Cache-Lookup des Managers abgeschlossen ist, und übergeben Sie dann driver_path an die übliche Selenium-Service-Einrichtung der Anwendung.
Die benutzerdefinierte get-Methode akzeptiert die zusätzlichen HTTP-Argumente des Managers und behält die Antwortvalidierung bei. Die Proxy-Wahl gehört zum Download-Client; konfigurieren Sie Chrome separat, wenn auch die Navigation einen Proxy benötigt.
trust_env=False macht die Konfiguration dieser Session explizit, einschließlich des Abschaltens der umgebungsbasierten CA-Bundle-Auswahl. Wenn die Download-Route ein Organisations-CA erfordert, stellen Sie das vorgesehene Bundle in der verify-Einstellung dieser Session bereit und behalten Sie die Zertifikatsprüfungen bei.