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 ਸੈਟਿੰਗ ਵਿੱਚ ਲੋੜੀਂਦੀ ਬੰਡਲ ਦਿਓ।

ਸੰਬੰਧਿਤ ਲੇਖ