Python webdriver-manager indirmeleri için proxy yapılandırma
Döndürülen driver path kullanılmadan önce Python webdriver-manager'a WDMDownloadManager üzerinden proxy'den haberdar bir HttpClient verin.
Chrome'un --proxy-server bağımsız değişkeni ancak tarayıcı başladıktan sonra geçerlidir. webdriver-manager uyumlu bir sürücü ararken ve arşivini indirirken proxy'ye daha erken ihtiyaç duyabilir.
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()
Bu parça mevcut webdriver-manager ve Requests bağımlılıklarını varsayar. Seçilen proxy dinleyicisi her iki hedef şeması için de HTTP'dir. İzin verilen genel sürücü indirmeleri için HTTP proxy listesi oturumun proxy URL'leri için adaylar sağlar. Yöneticinin kurulumu veya önbellek araması tamamlanana kadar Session'ı canlı tutun, ardından driver_path'i uygulamanın olağan Selenium hizmet kurulumuna aktarın.
Özel get yöntemi yöneticinin ek HTTP bağımsız değişkenlerini kabul eder ve yanıt doğrulamasını korur. Proxy seçimi indirme istemcisine aittir; gezinme de proxy gerektirdiğinde Chrome'u ayrıca yapılandırın.
trust_env=False bu Session'ın yapılandırmasını açık hale getirir; ortamdan türetilen CA paketi seçimini devre dışı bırakmayı da içerir. İndirme yolu bir kuruluş CA'sı gerektiriyorsa, sertifika denetimlerini koruyarak amaçlanan paketi bu Session'ın verify ayarında sağlayın.