Как настроить прокси с авторизацией в Selenium WebDriver
Обновлено:
Стандартный флаг ChromeDriver --proxy-server=http://ip:port игнорирует встроенные учетные данные user:pass и вызывает блокирующее окно авторизации. Чтобы использовать аутентифицированные HTTP(S) прокси от VinaProxy в Selenium, передавайте данные через selenium-wire или загружайте компактное фоновое расширение Chrome onAuthRequired.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP40 000 ₫
- От 5 IP35 000 ₫
- От 10 IP25 000 ₫
- От 20 IP25 000 ₫
- От 50 IP25 000 ₫
- От 100 IP25 000 ₫
- От 200 IP25 000 ₫
- От 500 IP25 000 ₫
- От 1000 IP22 000 ₫
- От 2000 IP20 000 ₫
- 1 IP75 000 ₫
- От 3 IP70 000 ₫
- От 5 IP65 000 ₫
- От 10 IP60 000 ₫
- От 50 IP60 000 ₫
- От 100 IP60 000 ₫
- От 200 IP60 000 ₫
- От 500 IP55 000 ₫
Два надежных способа аутентификации прокси в Selenium
Выберите подход, соответствующий вашему языку программирования и конфигурации драйвера:
| Подход | Синтаксис настройки | Для чего лучше подходит |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Самая быстрая настройка в Python; поддерживает смену прокси на лету без перезапуска |
| Расширение Chrome Auth | Загрузка ZIP-расширения с обработчиком chrome.webRequest.onAuthRequired | Стандартный Selenium на Python, Java, C# и undetected-chromedriver |
| Переход на Playwright | browser.newContext({ proxy: { server, username, password } }) | Встроенная поддержка авторизации прокси на уровне контекста без сторонних расширений |
Советы по оптимизации производительности Selenium при парсинге через прокси
- Установите
options.page_load_strategy = 'eager', чтобы WebDriver начинал взаимодействие сразу после готовности DOM, не дожидаясь сторонних скриптов отслеживания - Используйте флаг
--headless=new(Chrome 109+) для фонового режима, чтобы расширения и авторизация прокси работали так же, как в оконном режиме - Отключите загрузку изображений через настройки Chrome при парсинге текстовых данных для экономии трафика и ускорения загрузки
- Всегда оборачивайте код запуска драйвера в блок
try / finally: driver.quit(), чтобы исключить появление зависших процессов Chromium
Пошаговая инструкция
- 1
Установить selenium-wire
Выполните
pip install selenium-wireв виртуальном окружении Python. - 2
Задать словарь прокси VinaProxy
Сформируйте параметры:
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Запустить webdriver.Chrome с seleniumwire_options
Инициализируйте браузер:
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Проверить выходной IP-адрес
Перейдите на страницу
driver.get('https://vinaproxy.com/api/my-ip')и убедитесь, что в ответе JSON отображается ваш IP прокси.
Часто задаваемые вопросы
Почему параметр '--proxy-server=http://user:pass@ip:port' не работает в ChromeOptions?
Движок Chromium специально вырезает логин и пароль user:pass@ из аргументов командной строки. Использование selenium-wire, расширения onAuthRequired или Playwright полностью решает эту задачу.
Можно ли переключать прокси в selenium-wire без перезапуска браузера?
Да. В любой момент присвойте новый словарь объекту driver.proxy = {'http': 'http://...', 'https': 'http://...'} для мгновенной смены апстрим-прокси.
Работают ли расширения прокси в Chrome в режиме headless?
Да, если вместо устаревшего флага --headless вы передаете современный --headless=new.
Масштабируйте Selenium WebDriver с безлимитными статическими IP
Мгновенная выдача выделенных IPv4 и статических ISP прокси в 7 странах мира.
Купить прокси для Selenium