Chrome'дун --proxy-server аргументи браузер ишке киргенден кийин гана колдонулат. webdriver-manager шайкеш драйверди издеп, анын архивин жүктөп жатканда проксини эртерек талап кылышы мүмкүн.

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()

Бул үзүндү бар болгон webdriver-manager жана Requests көз карандылыктарын болжолдойт. Тандалган прокси-угуучу эки багыттагы схема үчүн тең HTTP. Уруксат берилген коомдук драйвер жүктөөлөрү үчүн HTTP прокси тизмеси сессиянын прокси URL дарегине талапкерлерди сунуштайт. Менеджердин орнотуусу же кэш издөөсү бүткөнгө чейин Session'ды тирүү кармаңыз, андан кийин driver_path'ты колдонмонун кадимки Selenium кызмат жөндөөсүнө өткөрүңүз.

Ыңгайлаштырылган get ыкмасы менеджердин кошумча HTTP аргументтерин кабыл алат жана жоопту текшерүүнү сактайт. Прокси тандоо жүктөө кардарына таандык; навигацияга да прокси керек болсо Chrome'ду өзүнчө конфигурациялаңыз.

trust_env=False бул Session'дын конфигурациясын ачык кылат, анын ичинде чөйрөдөн алынган CA топтомун тандоону өчүрүү. Эгер жүктөө маршруту уюмдун CA'сын талап кылса, сертификат текшерүүлөрүн сактап, керектүү топтомду ушул Session'дын verify жөндөөсүндө бериңиз.

Тектеш макалалар