Python webdriver-manager ডাউনলোডের জন্য প্রক্সি কনফিগার করুন
ফিরে আসা driver path ব্যবহার করার আগে WDMDownloadManager-এর মাধ্যমে Python webdriver-manager-কে প্রক্সি-সচেতন 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 সেটিংয়ে উদ্দিষ্ট বান্ডেলটি দিন।