پیکربندی پروکسی برای دانلودهای Python webdriver-manager
پیش از استفاده از driver path بازگشتی، به Python webdriver-manager یک HttpClient آگاه از پروکسی از طریق WDMDownloadManager بدهید.
آرگومان --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 اضافی مدیر را میپذیرد و اعتبارسنجی پاسخ را حفظ میکند. انتخاب پروکسی به کلاینت دانلود تعلق دارد؛ وقتی ناوبری هم به پروکسی نیاز دارد، کروم را جداگانه پیکربندی کنید.
trust_env=False پیکربندی این Session را صریح میکند، از جمله غیرفعالکردن انتخاب بستهٔ CA برگرفته از محیط. اگر مسیر دانلود به CA سازمانی نیاز دارد، بستهٔ موردنظر را در تنظیم verify این Session فراهم کنید و بررسیهای گواهی را حفظ کنید.