Nastavení proxy pro stahování Python webdriver-manager
Dejte Python webdriver-manageru HttpClient rozpoznávající proxy přes WDMDownloadManager před použitím vrácené cesty k ovladači.
Argument --proxy-server v Chrome se uplatní až po spuštění prohlížeče. webdriver-manager může proxy potřebovat dříve – při hledání kompatibilního ovladače a stahování jeho archivu.
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 předpokládá stávající závislosti webdriver-manager a Requests. Zvolený posluchač proxy je HTTP pro obě cílové schémata. Pro povolená veřejná stahování ovladačů poskytuje seznam HTTP proxy kandidáty pro proxy URL relace. Udržujte Session aktivní, dokud se nedokončí instalace nebo hledání v mezipaměti správce, poté předejte driver_path běžnému nastavení služby Selenium v aplikaci.
Vlastní metoda get přijímá další HTTP argumenty správce a zachovává ověřování odpovědi. Volba proxy patří ke stahovacímu klientovi; Chrome nastavte zvlášť, pokud proxy potřebuje i navigace.
trust_env=False činí konfiguraci této relace explicitní, včetně vypnutí výběru CA svazku z prostředí. Pokud trasa stahování vyžaduje podnikovou CA, poskytněte zamýšlený svazek v nastavení verify této relace a ponechte kontroly certifikátů.