Интеграции · Средний

Использование прокси с Selenium WebDriver (Chrome и Firefox)

Настройте прокси до запуска браузера, затем выберите аутентификацию, которую поддерживают ваши версии браузера и Selenium. Для постоянного сервера удобен активированный белый список IP. В актуальном Selenium есть обработчики аутентификации WebDriver BiDi; поддержку прокси проверяйте на своей комбинации версий. Selenium Wire архивирован и больше не рекомендуется как основной вариант.

2 минуты чтения 4 раздела Проверено Редакция Proxy Cyber

Подайте заявку с фактическим исходящим публичным IPv4 сервера в разделе «Доступ» и дождитесь активации администратором. NAT или VPN могут менять адрес, который видит шлюз. Подключение без пароля работает только после подтверждения записи для выданной услуги. Географию и сессию уточняйте отдельно: белый список не передаёт параметры имени пользователя.

Python, Chrome, сервер в белом списке
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

opts = Options()
opts.add_argument("--proxy-server=http://res.proxy-cyber.com:9000")
opts.add_argument("--headless=new")
driver = webdriver.Chrome(options=opts)
driver.get("https://api.ipify.org")
print(driver.find_element("tag name", "body").text)
driver.quit()

Вариант 2: аутентификация WebDriver BiDi #

Пример использует поддерживаемый API WebDriver BiDi в Selenium: enable_bidi и network.add_auth_handler. До запуска задачи проверьте запрос аутентификации HTTP-прокси с установленными браузером и драйвером. Обработчик не ограничен одним хостом, поэтому используйте отдельную браузерную сессию без посторонних запросов пароля. Если ваша комбинация версий не поддерживает этот сценарий, используйте активированный белый список IP.

Python, WebDriver BiDi
import os
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

options = Options()
options.enable_bidi = True
options.add_argument("--proxy-server=" + os.environ["PROXY_SERVER"])

with webdriver.Chrome(options=options) as driver:
    handler = driver.network.add_auth_handler(
        os.environ["PROXY_USER"], os.environ["PROXY_PASSWORD"]
    )
    try:
        driver.get("https://api.ipify.org")
        print(driver.find_element("tag name", "body").text)
    finally:
        driver.network.remove_auth_handler(handler)

Firefox#

Python, Firefox
from selenium import webdriver
from selenium.webdriver.firefox.options import Options

opts = Options()
opts.set_preference("network.proxy.type", 1)
opts.set_preference("network.proxy.http", "res.proxy-cyber.com")
opts.set_preference("network.proxy.http_port", 9000)
opts.set_preference("network.proxy.ssl", "res.proxy-cyber.com")
opts.set_preference("network.proxy.ssl_port", 9000)
opts.set_preference("media.peerconnection.enabled", False)  # без утечки WebRTC
driver = webdriver.Firefox(options=opts)  # сервер в белом списке, без запроса данных

Практические правила#

  • Используйте отдельный идентификатор сессии для каждого независимого сценария, если выданный шлюз поддерживает эту настройку. Допустимый срок и параметры географии проверяйте в реквизитах подключения. Резидентское устройство может отключиться раньше указанного срока: закреплённая сессия не гарантирует один IP на несколько дней. Для постоянного адреса сравните выделенные статические продукты.
  • Используйте --headless=new в Chrome: старый безголовый режим имеет характерный цифровой отпечаток.
  • Разные идентификаторы сессии разделяют настройки маршрутизации, но не cookie браузера или состояние приложения. Начните с небольшого числа процессов, измерьте ошибки и расход, затем постепенно увеличивайте нагрузку в пределах условий заказа и ограничений целевого сайта. Узкий выбор города или оператора может уменьшить доступную ёмкость.

Частые вопросы#

Почему Chrome показывает запрос учётных данных прокси при работе с Selenium?

Для постоянного сервера используйте активированный белый список IP либо проверьте обработчик аутентификации WebDriver BiDi в актуальном Selenium с вашим браузером. Новую интеграцию не стоит строить на архивированном Selenium Wire.

Ваш аккаунт

Управляйте прокси в одном кабинете

Сравнивайте сети, оформляйте заказы и проверяйте баланс и обращения в одном кабинете. Платежи проверяются вручную, а данные для подключения появляются после выдачи.

Создать аккаунт