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.

Susiję straipsniai