Како да поставите автентицирано прокси во Selenium WebDriver
Updated:
Стандардните знаменца --proxy-server=http://ip:port во ChromeDriver ги игнорираат наведените најавни податоци user:pass и прикажуваат блокирачки дијалог за најава. За беспрекорно користење на автентицирани HTTP(S) проксија од VinaProxy во Selenium, проследете ги вашите податоци преку selenium-wire или вчитајте мала Chrome onAuthRequired позадинска наставка.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP40.000 VND
- 5+ IP35.000 VND
- 10+ IP25.000 VND
- 20+ IP25.000 VND
- 50+ IP25.000 VND
- 100+ IP25.000 VND
- 200+ IP25.000 VND
- 500+ IP25.000 VND
- 1000+ IP22.000 VND
- 2000+ IP20.000 VND
- 1 IP75.000 VND
- 3+ IP70.000 VND
- 5+ IP65.000 VND
- 10+ IP60.000 VND
- 50+ IP60.000 VND
- 100+ IP60.000 VND
- 200+ IP60.000 VND
- 500+ IP55.000 VND
Два сигурни начини за автентикација на проксија во Selenium
Изберете го пристапот што одговара на вашиот програмски јазик и драјвер за прелистувач:
| Пристап | Синтакса за конфигурација | Најдобро за |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Најбрзо поставување во Python; поддржува замена на прокси во текот на сесијата |
| Chrome наставка за автентикација | Вчитајте спакувана (zip) наставка што обработува chrome.webRequest.onAuthRequired | Стандарден Selenium за Python, Java, C# и undetected-chromedriver |
| Префрлување на Playwright | browser.newContext({ proxy: { server, username, password } }) | Вградена автентикација на прокси по контекст без потреба од наставки |
Совети за подобри перформанси при Selenium scraping преку проксија
- Поставете
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 режим?
Да, сè додека го користите знаменцето --headless=new наместо застареното --headless.
Извршувајте Selenium WebDriver на големо со неограничени статички IP-адреси
Инстантни наменски IPv4 и статички ISP проксија низ 7 земји.
Купете Selenium проксија