#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)
Комментариев нет:
Отправить комментарий