Chrome arguments --proxy-server darbojas tikai pēc pārlūka palaišanas. webdriver-manager starpniekserveris var būt vajadzīgs agrāk, kad tas meklē saderīgu draiveri un lejupielādē tā arhī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()

Šis fragments pieņem esošās webdriver-manager un Requests atkarības. Izvēlētais starpniekservera klausītājs ir HTTP abām galamērķa shēmām. Atļautām publiskām draivera lejupielādēm HTTP starpniekserveru saraksts piedāvā kandidātus sesijas starpniekservera URL adresēm. Turiet Session dzīvu, līdz pārvaldnieka instalācija vai kešatmiņas meklēšana ir pabeigta, pēc tam nododiet driver_path lietotnes ierastajai Selenium servisa iestatīšanai.

Pielāgotā get metode pieņem pārvaldnieka papildu HTTP argumentus un saglabā atbildes validāciju. Starpniekservera izvēle pieder lejupielādes klientam; konfigurējiet Chrome atsevišķi, ja arī navigācijai vajadzīgs starpniekserveris.

trust_env=False padara šīs sesijas konfigurāciju skaidru, tostarp atslēdzot no vides iegūtā CA komplekta izvēli. Ja lejupielādes maršrutam nepieciešams organizācijas CA, norādiet paredzēto komplektu šīs sesijas verify iestatījumā, saglabājot sertifikātu pārbaudes.

Saistītie raksti