Как установить прокси socks5 для selenium webdriver? python

Я действительно не могу установить прокси socks5 (http тоже ...) для моего Chrome webdriver в selenium для python. Я пробовал много разных способов ... Но думаю, что делаю что-то нехорошее.

Пример 1:

self.options.add_argument('--proxy-server=http://'+proxy)

Пример 2:

webdriver.DesiredCapabilities.CHROME['proxy'] = {
        "socksProxy": proxy,
        "ftpProxy": proxy,
        "sslProxy": proxy,
        "noProxy": None,
        "proxyType": "MANUAL",
        "class": "org.openqa.selenium.Proxy",
        "autodetect": False
    }

Пожалуйста, полностью опишите рабочий пример настройки прокси socks5 на Selenium для Python и Chrome webdriver с примером форматов строк прокси (возможно, я здесь что-то делаю ...).

PS Две проблемы, которые у меня возникают:

  1. Просто оставался старый IP-адрес.
  2. Нет подключения к Интернету в веб-драйвере Chrome.
3
0
10 449
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Ответ принят как подходящий

Chrome не разрешает прокси с авторизацией. Я не уверен, но, прочитав столько информации, я так думаю .... У меня работает только один способ - использовать прокси socks5 без авторизации по логину и паролю.

 options = webdriver.ChromeOptions()
 proxy = '12.12.421.125:1949'   
 options.add_argument('--proxy-server=socks5://' + proxy)
 driver = webdriver.Chrome(options=options)

Можем ли мы сейчас использовать prowy auth с хромом?

0xTheOldOne 10.02.2021 01:37

Для Геккодрайвер FireFox, если вы просто хотите установить socks5 хост / socks5 прокси: -

form selenium import webdriver

profile = webdriver.FirefoxProfile()

# Socks5 Host SetUp:-
myProxy = "198.199.101.152:8388"
ip, port = myProxy.split(':')
profile.set_preference('network.proxy.type', 1)
profile.set_preference('network.proxy.socks', ip)
profile.set_preference('network.proxy.socks_port', int(port))

driver = webdriver.Firefox(firefox_profile=profile)

Вот код, который я использовал для подключения к серверу Socks5 с именем пользователя / паролем auth.

from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

capabilities = dict(DesiredCapabilities.CHROME)
capabilities['proxy'] = {
    'proxyType': 'MANUAL',
    'socksProxy': '<Your_IP>:<Your_Port>',
    'socksVersion': 5,
    'ftpProxy': '<Your_IP>:<Your_Port>',
    'noProxy': 'localhost,127.0.0.1',
    'class': "org.openqa.selenium.Proxy",
    'autodetect': False
}

capabilities['proxy']['socksUsername'] = '<username>'
capabilities['proxy']['socksPassword'] = '<password>'

driver = Chrome(ChromeDriverManager().install(), desired_capabilities=capabilities)

Другие вопросы по теме