Chrome ning --proxy-server argumenti brauzer ishga tushgandan keyingina amal qiladi. webdriver-manager mos drayverni qidirib, uning arxivini yuklayotganda proksini ertaroq talab qilishi mumkin.

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

Bu parcha mavjud webdriver-manager va Requests bogʻliqliklarini nazarda tutadi. Tanlangan proksi tinglovchisi ikkala manzil sxemasi uchun ham HTTP. Ruxsat etilgan ommaviy drayver yuklamalari uchun HTTP proksilar roʻyxati sessiyaning proksi URL manzillari uchun nomzodlar beradi. Menejerning oʻrnatilishi yoki kesh qidiruvi tugaguncha Session ni tirik saqlang, soʻngra driver_path ni ilovaning odatiy Selenium xizmati sozlamasiga uzating.

Moslashtirilgan get usuli menejerning qoʻshimcha HTTP argumentlarini qabul qiladi va javob tekshiruvini saqlaydi. Proksi tanlovi yuklab olish mijoziga tegishli; navigatsiya ham proksi talab qilsa, Chrome ni alohida sozlang.

trust_env=False bu Session konfiguratsiyasini ochiq qiladi, jumladan muhitdan olingan CA toʻplamini tanlashni oʻchirish. Agar yuklash yoʻli tashkilot CA sini talab qilsa, sertifikat tekshiruvlarini saqlab, kerakli toʻplamni shu Session ning verify sozlamasida bering.

O'xshash maqolalar