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 सेटिङमा इच्छित बन्डल दिनुहोस्।

सम्बन्धित लेखहरू