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 پراکسی فہرست سیشن کے پراکسی URLs کے لیے امیدوار فراہم کرتی ہے۔ Session کو اس وقت تک زندہ رکھیں جب تک مینیجر کی تنصیب یا کیش تلاش مکمل نہ ہو، پھر driver_path کو ایپلیکیشن کے معمول کے Selenium سروس سیٹ اپ کو دیں۔
حسب ضرورت get طریقہ مینیجر کے اضافی HTTP آرگیومنٹس قبول کرتا ہے اور جواب کی توثیق برقرار رکھتا ہے۔ پراکسی کا انتخاب ڈاؤن لوڈ کلائنٹ کا ہے؛ جب نیویگیشن کو بھی پراکسی درکار ہو تو Chrome کو الگ سے کنفیگر کریں۔
trust_env=False اس Session کی کنفیگریشن کو واضح کرتا ہے، بشمول ماحول سے ماخوذ CA بنڈل کے انتخاب کو غیر فعال کرنا۔ اگر ڈاؤن لوڈ راستے کو تنظیمی CA درکار ہو تو سرٹیفکیٹ جانچ برقرار رکھتے ہوئے مطلوبہ بنڈل اس Session کی verify سیٹنگ میں دیں۔