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 параметрінде көрсетіңіз.