Как да настроите прокси с автентикация в Selenium WebDriver
Updated:
Стандартните флагове на ChromeDriver --proxy-server=http://ip:port игнорират вградените идентификационни данни user:pass и извеждат блокиращ прозорец за вход. За да използвате безпроблемно VinaProxy HTTP(S) проксита с автентикация в Selenium, подайте данните си за достъп чрез selenium-wire или заредете малко фоново Chrome разширение за onAuthRequired.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP40 000 VND
- 5+ IP адреса35 000 VND
- 10+ IP адреса25 000 VND
- 20+ IP адреса25 000 VND
- 50+ IP адреса25 000 VND
- 100+ IP адреса25 000 VND
- 200+ IP адреса25 000 VND
- 500+ IP адреса25 000 VND
- 1000+ IP адреса22 000 VND
- 2000+ IP адреса20 000 VND
- 1 IP75 000 VND
- 3+ IP адреса70 000 VND
- 5+ IP адреса65 000 VND
- 10+ IP адреса60 000 VND
- 50+ IP адреса60 000 VND
- 100+ IP адреса60 000 VND
- 200+ IP адреса60 000 VND
- 500+ IP адреса55 000 VND
Два надеждни начина за автентикация на прокси в Selenium
Изберете подхода, който отговаря на вашата среда за разработка и браузърен драйвер:
| Подход | Синтаксис за конфигурация | Най-подходящ за |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Най-бързата настройка за Python; поддържа динамична смяна на проксита по време на сесията |
| Chrome разширение за автентикация | Зареждане на архивирано разширение, обработващо 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+), ако стартирате в headless режим, за да работят Chrome разширенията и прокси автентикацията идентично с графичния режим - Деактивирайте зареждането на изображения през настройките на 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@ от флага --proxy-server в командния ред. Използването на selenium-wire, разширение с onAuthRequired или Playwright решава този проблем изцяло.
Мога ли да сменям проксита без рестартиране на Chrome в selenium-wire?
Да. Задайте нов речник към driver.proxy = {'http': 'http://...', 'https': 'http://...'} във всеки един момент, за да смените активното прокси в движение.
Работят ли прокси разширенията за Chrome в headless режим?
Да, стига да подадете --headless=new вместо остарелия флаг --headless.
Мащабирайте Selenium WebDriver с неограничени статични IP адреси
Мигновени Dedicated IPv4 и Static ISP проксита в 7 държави.
Купете проксита за Selenium