Konfigurowanie proxy dla pobierania Python webdriver-manager
Przekaż Python webdriver-managerowi HttpClient świadomy proxy przez WDMDownloadManager, zanim użyjesz zwróconej ścieżki driver path.
Argument --proxy-server Chrome działa dopiero po uruchomieniu przeglądarki. webdriver-manager może potrzebować proxy wcześniej, gdy szuka zgodnego sterownika i pobiera jego archiwum.
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()
Ten fragment zakłada istniejące zależności webdriver-manager i Requests. Wybrany nasłuch proxy to HTTP dla obu schematów docelowych. Dla dozwolonych publicznych pobrań sterowników lista proxy HTTP dostarcza kandydatów do adresów URL proxy sesji. Utrzymuj Session przy życiu, aż instalacja lub wyszukiwanie w pamięci podręcznej menedżera się zakończy, a następnie przekaż driver_path do zwykłej konfiguracji usługi Selenium w aplikacji.
Niestandardowa metoda get przyjmuje dodatkowe argumenty HTTP menedżera i zachowuje walidację odpowiedzi. Wybór proxy należy do klienta pobierania; skonfiguruj Chrome osobno, gdy nawigacja również wymaga proxy.
trust_env=False czyni konfigurację tej sesji jawną, w tym wyłącza wybór pakietu CA pochodzącego ze środowiska. Jeśli trasa pobierania wymaga CA organizacji, podaj zamierzony pakiet w ustawieniu verify tej sesji, zachowując kontrole certyfikatów.