Страницы

Поиск по вопросам

пятница, 14 февраля 2020 г.

Как настроить Socks5 proxy на Selenium для chrome в python?

#python #python_3x #selenium #selenium_webdriver #socks5


никак не получается настроить socks5 прокси (и http кстати тоже) на Selenium. Перепробовал
кучу способ. И через опции

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


и через 

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 два типа проблем возникали при попытках установить прокси разными способами: 


Просто оставался старый айпишник, не ставился прокси.
Пропадал доступ в интернет через webdriver. 
Просто почему то очень много способов в интернете находил, но результата пока что
не добился


Update:
Попробовал способом предложенным ниже. IP не удается изменить

proxy = 'name:pass@ip:port'
service_args = ['--proxy='+proxy, '--proxy-type=socks5']
driver = webdriver.Chrome(executable_path=path_to_chrome_webdriver, 
                          service_args=service_args)
driver.get('https://2ip.ru/')


Update:
Получилось использовать прокси socks5 без аутентификации с помощью следующего кода:

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


При добавлении

 options.add_argument('--proxy-auth=' + proxy_auth)


Пропадает подключение
    


Ответы

Ответ 1



Попробуйте через service_args: service_args = ['--proxy=127.0.0.1:9050', '--proxy-type=socks5', '--proxy-auth=admin:admin'] driver = webdriver.Chrome(executable_path=path_to_chrome_webdriver, service_args=service_args) Update: proxies = [ { 'addr': '123.123.123.123:1234', 'auth': 'admin:admin' }, { 'addr': '200.2.2.2:7868', 'auth': 'foo:bar' }, ] for proxy in proxies: service_args = ['--proxy=' + proxy['addr'], '--proxy-type=socks5', '--proxy-auth=' + proxy['auth']] driver = webdriver.Chrome(executable_path=path_to_chrome_webdriver, service_args=service_args) driver.get('https://2ip.ru/') driver.close()

Ответ 2



Хром не поддерживает прокси с аутентификацией по логину и паролю Я в этом не уверен, но очень много информации изучив я пришел к этому. Единственное решение, которое для меня подходит - это использовать прокси без аутентификации по логину и паролю (можно использовать аутентификацию по IP) options = webdriver.ChromeOptions() proxy = '12.12.421.125:1949' options.add_argument('--proxy-server=socks5://' + proxy) driver = webdriver.Chrome(options=self.options)

Комментариев нет:

Отправить комментарий