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 सेटिंगमध्ये इच्छित बंडल द्या.

संबंधित लेख