Tarpinio serverio konfigūravimas Python webdriver-manager atsisiuntimams
Suteikite Python webdriver-manager tarpinį serverį suprantantį HttpClient per WDMDownloadManager prieš naudodami grąžintą driver path.
Chrome argumentas --proxy-server įsigalioja tik paleidus naršyklę. webdriver-manager tarpinio serverio gali prireikti anksčiau, kai ieško suderinamo tvarkyklės ir atsisiunčia jo archyvą.
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()
Šis fragmentas numato esamas webdriver-manager ir Requests priklausomybes. Pasirinktas tarpinio serverio klausytojas yra HTTP abiem paskirties schemoms. Leidžiamiems viešiems tvarkyklės atsisiuntimams HTTP tarpinių serverių sąrašas siūlo kandidatus sesijos tarpinio serverio URL adresams. Laikykite Session gyvą, kol bus baigtas tvarkyklės diegimas ar talpyklos paieška, tada perduokite driver_path įprastam programos Selenium paslaugos nustatymui.
Pasirinktinis get metodas priima papildomus tvarkyklės HTTP argumentus ir išsaugo atsakymo patikrinimą. Tarpinio serverio pasirinkimas priklauso atsisiuntimo klientui; sukonfigūruokite Chrome atskirai, kai naršymui taip pat reikia tarpinio serverio.
trust_env=False padaro šios sesijos konfigūraciją aiškią, įskaitant iš aplinkos gaunamo CA paketo pasirinkimo išjungimą. Jei atsisiuntimo maršrutui reikia organizacijos CA, pateikite numatytą paketą šios sesijos verify nuostatoje, išlaikydami sertifikatų patikras.