Python webdriver-manager жүктөөлөрү үчүн прокси конфигурациялоо
Кайтарылган driver path колдонуудан мурун Python webdriver-managerге WDMDownloadManager аркылуу проксини түшүнгөн HttpClient бериңиз.
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 жөндөөсүндө бериңиз.