ອາກູເມັນ --proxy-server ຂອງ Chrome ໃຊ້ໄດ້ຫຼັງຈາກເບຣົາເຊີເລີ່ມແລ້ວ. webdriver-manager ອາດຕ້ອງການ proxy ກ່ອນໜ້ານັ້ນ ເມື່ອມັນຊອກຫາ driver ທີ່ເຂົ້າກັນໄດ້ ແລະ ດາວໂຫລດ archive ຂອງມັນ.

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()

ສ່ວນນີ້ສົມມຸດວ່າມີ dependency webdriver-manager ແລະ Requests ທີ່ມີຢູ່ແລ້ວ. proxy listener ທີ່ເລືອກແມ່ນ HTTP ສຳລັບທັງສອງ scheme ປາຍທາງ. ສຳລັບການດາວໂຫລດ driver ສາທາລະນະທີ່ອະນຸຍາດ, ລາຍຊື່ proxy HTTP ໃຫ້ຜູ້ສະໝັກສຳລັບ URL proxy ຂອງ session. ຮັກສາ Session ໃຫ້ມີຊີວິດຈົນກວ່າການຕິດຕັ້ງ ຫຼື ການຄົ້ນຫາ cache ຂອງ manager ຈະສຳເລັດ, ແລ້ວສົ່ງ driver_path ໄປຫາການຕັ້ງຄ່າ Selenium service ປົກກະຕິຂອງແອັບຯ.

ວິທີ get ທີ່ກຳນົດເອງຮັບອາກູເມັນ HTTP ເພີ່ມເຕີມຂອງ manager ແລະ ຮັກສາການກວດສອບການຕອບສະໜອງ. ການເລືອກ proxy ເປັນຂອງ client ດາວໂຫລດ; ຕັ້ງຄ່າ Chrome ແຍກຕ່າງຫາກ ເມື່ອການນຳທາງກໍຕ້ອງການ proxy.

trust_env=False ເຮັດໃຫ້ການຕັ້ງຄ່າຂອງ Session ນີ້ຊັດເຈນ ລວມທັງການປິດການເລືອກ CA bundle ທີ່ມາຈາກສະພາບແວດລ້ອມ. ຖ້າເສັ້ນທາງດາວໂຫລດຕ້ອງການ CA ຂອງອົງກອນ, ໃຫ້ bundle ທີ່ຕັ້ງໃຈໄວ້ໃນການຕັ້ງຄ່າ verify ຂອງ Session ນີ້ ໂດຍຮັກສາການກວດສອບໃບຢັ້ງຢືນ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ