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 ପ୍ରକ୍ସି ତାଲିକା ସେସନର ପ୍ରକ୍ସି URL ପାଇଁ ପ୍ରାର୍ଥୀ ଯୋଗାଏ। ମ୍ୟାନେଜରର ସ୍ଥାପନ କିମ୍ବା କ୍ୟାସ୍ ଖୋଜ ସମ୍ପୂର୍ଣ୍ଣ ନହେବା ପର୍ଯ୍ୟନ୍ତ Session ସକ୍ରିୟ ରଖନ୍ତୁ, ତାପରେ driver_path କୁ ଆପ୍ଲିକେସନର ସାଧାରଣ Selenium ସେବା ସେଟଅପକୁ ଦିଅନ୍ତୁ।

କଷ୍ଟମ୍ get ପଦ୍ଧତି ମ୍ୟାନେଜରର ଅତିରିକ୍ତ HTTP ଆର୍ଗୁମେଣ୍ଟ ଗ୍ରହଣ କରେ ଏବଂ ପ୍ରତିକ୍ରିୟା ବୈଧତା ରକ୍ଷା କରେ। ଏହାର ପ୍ରକ୍ସି ଚୟନ ଡାଉନଲୋଡ୍ କ୍ଲାଇଣ୍ଟର; ନାଭିଗେସନକୁ ମଧ୍ୟ ପ୍ରକ୍ସି ଦରକାର ହେଲେ Chrome ଅଲଗା ଭାବରେ କନଫିଗର କରନ୍ତୁ।

trust_env=False ଏହି Session ର କନଫିଗରେସନକୁ ସ୍ପଷ୍ଟ କରେ, ପରିବେଶରୁ ଆସୁଥିବା CA ବଣ୍ଡଲ ଚୟନ ନିଷ୍କ୍ରିୟ କରିବା ସହିତ। ଯଦି ଡାଉନଲୋଡ୍ ପଥକୁ ସଂସ୍ଥାର CA ଆବଶ୍ୟକ, ପ୍ରମାଣପତ୍ର ଯାଞ୍ଚ ରଖି ଏହି Session ର verify ସେଟିଂରେ ଉଦ୍ଦିଷ୍ଟ ବଣ୍ଡଲ ଦିଅନ୍ତୁ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ