Python webdriver-manager බාගැනීම් සඳහා proxy වින්යාස කිරීම
නැවත ලැබෙන driver path භාවිත කිරීමට පෙර WDMDownloadManager හරහා Python webdriver-manager වෙත proxy දන්නා HttpClient එකක් ලබා දෙන්න.
Chrome හි --proxy-server තර්කය ක්රියාත්මක වන්නේ බ්රව්සරය ආරම්භ වූ පසුවය. webdriver-manager හට ගැළපෙන driver සොයමින් එහි archive බාගනිමින් සිටියදී කලින් proxy අවශ්ය විය හැක.
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 රඳාපැවැත්ම උපකල්පනය කරයි. තෝරාගත් proxy listener දෙකොන ස්කීම් දෙකටම HTTP වේ. අවසර ලත් පොදු driver බාගැනීම් සඳහා HTTP proxy ලැයිස්තුව session හි proxy URL සඳහා අපේක්ෂකයන් සපයයි. කළමනාකරුගේ ස්ථාපනය හෝ cache සෙවීම අවසන් වන තෙක් Session ජීවමානව තබන්න, පසුව driver_path යෙදුමේ සාමාන්ය Selenium සේවා සැකසුමට ලබා දෙන්න.
අභිරුචි get ක්රමය කළමනාකරුගේ අතිරේක HTTP තර්ක පිළිගනිමින් ප්රතිචාර සත්යාපනය රඳවා ගනී. proxy තේරීම බාගැනීම් සේවාලාභියාට අයත් ය; සංචාලනයට ද proxy අවශ්ය නම් Chrome වෙන වෙනම වින්යාස කරන්න.
trust_env=False මෙම Session හි වින්යාසය පැහැදිලි කරයි, පරිසරයෙන් ලබාගත් CA bundle තේරීම අක්රීය කිරීම ඇතුළුව. බාගැනීම් මාර්ගයට සංවිධානයේ CA අවශ්ය නම්, සහතික පරීක්ෂා රඳවාගෙන මෙම Session හි verify සැකසුමේ අපේක්ෂිත bundle ලබා දෙන්න.