селен
Что такое селен?
SeleniumЭто зонтичный проект для ряда инструментов и библиотек, которые позволяют и поддерживают автоматизацию веб-браузеров.
Selenium имеет много функций, но по своей сути это набор инструментов для автоматизации веб-браузера, который использует лучшие технологии, доступные для удаленного управления экземплярами браузера и моделирования взаимодействия пользователей с браузером.

Как интегрировать Socks5 с Selenium
Установить Selenium
Установите Selenium Wire для расширения привязки Selenium к Python, поскольку использование модулей Selenium по умолчанию для реализации прокси-серверов, требующих аутентификации, усложняет процесс. Вы можете сделать это, используя команду pip:pip install selenium-wire
Другим рекомендуемым пакетом для этой интеграции являетсяwebdriver-managerЭто пакет, который упрощает управление двоичными драйверами для разных браузеров. При этом нет необходимости вручную скачивать новую версию веб-драйвера после каждого обновления.
Укажите свои учетные данные пользователя, чтобы агент работал должным образом
USERNAME = "socks5-customer-USERNAME"
PASSWORD = "PASSWORD"
ENDPOINT = "proxy-as.socks5.io:3000"
Проверьте статус прокси
Проверьте, правильно ли работает агент, посетивhttps://ip234.in/ip.jsonЕсли все в порядке - он вернет IP-адрес агента, которого вы используете.
try:
driver.get("https://ip234.in/ip.json/")
return f'\nYour IP is: {driver.find_element(By.CSS_SELECTOR, "pre").text}'
finally:
driver.quit()Пример полного кода:
from selenium.webdriver.common.by import By
from seleniumwire import webdriver
# A package to have a chromedriver always up-to-date.
from webdriver_manager.chrome import ChromeDriverManager
USERNAME = "socks5-customer-USERNAME"
PASSWORD = "PASSWORD"
ENDPOINT = "proxy-as.socks5.io:3000"
def chrome_proxy(user: str, password: str, endpoint: str) -> dict:
wire_options = {
"proxy": {
"http": f"http://{user}:{password}@{endpoint}",
"https": f"https://{user}:{password}@{endpoint}",
}
}
return wire_options
def execute_driver():
options = webdriver.ChromeOptions()
options.add_argument('--headless')
proxies = chrome_proxy(USERNAME, PASSWORD, ENDPOINT)
driver = webdriver.Chrome(
ChromeDriverManager(driver_version='<VERSION>').install(), options=options, seleniumwire_options=proxies
)
try:
driver.get("https://ip234.in/ip.json/")
return f'\nYour IP is: {driver.find_element(By.CSS_SELECTOR, "pre").text}'
finally:
driver.quit()
if __name__ == '__main__':
print(execute_driver())