@vyr0d0k

Selenium Python как изменять прокси?

Реализовываю автоматизацию платёжной системы через селениум. Тк к каждому кошельку прикреплён прокси, то при смене кошелька нужно менять и прокси (если я правильно понимаю, то это можно сделать только перезапустив браузер). Только вот никак не могу допереть как это реализовать. driver.quit() закрывает браузер а дальше всё. Не знаю как обратно запустить. И так чтобы это работало 24/7, без участия пользователя. При определённых условиях менялся аккаунт, и вместе с ним — прокси.

В общем суть вопроса — как реализовать смену прокси внутри одного драйвера не используя Proxyfier и подобное, используя только инструменты Python и Selenium.
  • Вопрос задан
  • 72 просмотра
Решения вопроса 1
@vyr0d0k Автор вопроса
В общем, решил проблему, вот код:
class Driver:

    options = webdriver.FirefoxOptions()

    options.set_preference('dom.webdriver.enabled', False)
    options.set_preference('media.volume_scale', '0.0')
    options.set_preference('general.useragent.override', user_agent)

    profile = webdriver.FirefoxProfile()

    profile.set_preference('network.proxy.type', 1)
    profile.set_preference('network.proxy.http', proxy["ip"])
    profile.set_preference('network.proxy.http_port', proxy["http_port"])
    profile.set_preference('network.proxy.https', proxy["ip"])
    profile.set_preference('network.proxy.https_port', proxy["http_port"])
    profile.set_preference('network.proxy.ssl', proxy["ip"])
    profile.set_preference('network.proxy.ssl_port', proxy["http_port"])
    profile.set_preference('network.proxy.ftp', proxy["ip"])
    profile.set_preference('network.proxy.ftp_port', proxy["http_port"])
    profile.set_preference('network.proxy.socks', proxy["ip"])
    profile.set_preference('network.proxy.socks_port', proxy["socks_port"])

    driver = webdriver.Firefox(firefox_profile=profile, options=options)

    @classmethod
    def change_proxy(cls):
        cls.profile.set_preference('network.proxy.http', ip)
        cls.profile.set_preference('network.proxy.http_port', port)
        cls.profile.set_preference('network.proxy.https', ip)
        cls.profile.set_preference('network.proxy.https_port', port)
        cls.profile.set_preference('network.proxy.ssl', ip)
        cls.profile.set_preference('network.proxy.ssl_port', port)
        cls.profile.set_preference('network.proxy.ftp', ip)
        cls.profile.set_preference('network.proxy.ftp_port', port)
        cls.profile.set_preference('network.proxy.socks', ip)
        cls.profile.set_preference('network.proxy.socks_port', socks_port)
        cls.profile.update_preferences()
        cls.driver.quit()
        cls.driver = webdriver.Firefox(firefox_profile=cls.profile, options=cls.options)
        cls.driver.get("https://2ip.ru/")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы