Nastavenie proxy pre sťahovanie Python webdriver-manager
Dajte Python webdriver-manageru HttpClient rozpoznávajúci proxy cez WDMDownloadManager pred použitím vrátenej cesty k ovládaču.
Argument --proxy-server v Chrome sa uplatní až po spustení prehliadača. webdriver-manager môže proxy potrebovať skôr – pri hľadaní kompatibilného ovládača a sťahovaní jeho archívu.
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()
Tento fragment predpokladá existujúce závislosti webdriver-manager a Requests. Zvolený poslucháč proxy je HTTP pre obe cieľové schémy. Pre povolené verejné sťahovania ovládačov poskytuje zoznam HTTP proxy kandidátov pre proxy URL relácie. Udržujte Session aktívnu, kým sa nedokončí inštalácia alebo hľadanie v medzipamäti správcu, potom odovzdajte driver_path bežnému nastaveniu služby Selenium v aplikácii.
Vlastná metóda get prijíma ďalšie HTTP argumenty správcu a zachováva overovanie odpovede. Voľba proxy patrí sťahovaciemu klientovi; Chrome nastavte samostatne, ak proxy potrebuje aj navigácia.
trust_env=False robí konfiguráciu tejto relácie explicitnou, vrátane vypnutia výberu CA zväzku z prostredia. Ak trasa sťahovania vyžaduje podnikovú CA, poskytnite zamýšľaný zväzok v nastavení verify tejto relácie a ponechajte kontroly certifikátov.