@radeon3850
Начинающий разработчик python

Как заставить Selenium работать с прокси socks5?

Имется такой код для запуска selenium с использованием прокси. Проблема в том что вроде бы код работает но не меняется IP при проверке на соответсвующих ресурсах 3 дня танцев вокруг сего кода с разными вариантами результат нулевой.

seleniumwire_options = {
    'proxy': {
        'socks5': 'socks5://127.0.0.1:40000',
        'no_proxy': 'localhost,127.0.0.1,dev_server:40000',
        'proxy_type': 'MANUAL',
    }
}

profile = FirefoxProfile()
user_agent = UserAgent().random
profile.set_preference("general.useragent.override", user_agent)
profile.set_preference("network.proxy.type", 1)
profile.set_preference("network.proxy.socks", "127.0.0.1")
profile.set_preference("network.proxy.socks_port", 40000)

options = webdriver.FirefoxOptions()

# options.add_argument('--headless')

driver = webdriver.Firefox(
    firefox_profile=profile,
    options=options,
    seleniumwire_options=seleniumwire_options
)
driver.get('https://2ip.ru/')


Тот пост что был на этом ресурсе увы проблему не помог решить.
  • Вопрос задан
  • 777 просмотров
Решения вопроса 1
scoffs
@scoffs
Fullstack | C# | Student
Мне кажется, что вы неправильно задаете параметры для использования прокси.

Вместо того, чтобы указывать network.proxy.type, network.proxy.socks и network.proxy.socks_port через FirefoxProfile, вы должны настроить эти параметры через proxy_options в seleniumwire_options:
from seleniumwire import webdriver
from selenium.webdriver.common.by import By

seleniumwire_options = {
    'proxy': {
        'http': 'socks5://127.0.0.1:40000',
        'https': 'socks5://127.0.0.1:40000',
        'no_proxy': 'localhost,127.0.0.1',
        'proxy_type': 'manual'
    }
}

options = webdriver.FirefoxOptions()
profile = webdriver.FirefoxProfile()
user_agent = UserAgent().random
profile.set_preference("general.useragent.override", user_agent)

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

driver.get('https://www.whatismyip.com/')
print(driver.find_element(By.CSS_SELECTOR, '.we-did-it__title').text)

Здесь мы указываем параметры прокси в формате http и https, а также удаляем порт изno_proxy. Вы можете изменить эти настройки под свои нужды.

Кроме того, я добавил простой тест для проверки IP-адреса через whatismyip.com

Помогло?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы