Konfigurasikan Proksi untuk Muat Turun Python webdriver-manager
Berikan Python webdriver-manager HttpClient yang sedar proksi melalui WDMDownloadManager sebelum menggunakan driver path yang dikembalikan.
Argumen --proxy-server Chrome hanya terpakai selepas pelayar dimulakan. webdriver-manager mungkin memerlukan proksi lebih awal, semasa mencari pemacu yang serasi dan memuat turun arkibnya.
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()
Coretan ini menganggap kebergantungan webdriver-manager dan Requests sedia ada. Pendengar proksi yang dipilih ialah HTTP untuk kedua-dua skema destinasi. Untuk muat turun pemacu awam yang dibenarkan, senarai proksi HTTP menyediakan calon untuk URL proksi sesi. Kekalkan Session hidup sehingga pemasangan atau carian cache pengurus selesai, kemudian serahkan driver_path kepada persediaan perkhidmatan Selenium biasa aplikasi.
Kaedah get tersuai menerima argumen HTTP tambahan pengurus dan mengekalkan pengesahan respons. Pilihan proksi milik klien muat turun; konfigurasikan Chrome secara berasingan apabila navigasi juga memerlukan proksi.
trust_env=False menjadikan konfigurasi Session ini eksplisit, termasuk menyahdayakan pemilihan bundle CA yang diperoleh daripada persekitaran. Jika laluan muat turun memerlukan CA organisasi, sediakan bundle yang dimaksudkan pada tetapan verify Session ini sambil mengekalkan semakan sijil.