Како подесити аутентификовани прокси у 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+) ако радите у режиму без графичког интерфејса, како би 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=new уместо застареле заставице --headless.
Покрените Selenium WebDriver у великом обиму уз неограничене статичке IP адресе
Тренутно доступни наменски IPv4 и статички ISP проксији у 7 земаља.
Купите Selenium проксије