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 সেটিংয়ে উদ্দিষ্ট বান্ডেলটি দিন।

সম্পর্কিত নিবন্ধ