Kako nastaviti proxy z avtentikacijo v Selenium WebDriverju
Updated:
Standardne zastavice ChromeDriverja --proxy-server=http://ip:port prezrejo vdelane poverilnice user:pass in prikažejo blokirno prijavno pogovorno okno. Za nemoteno uporabo avtenticiranih HTTP(S) proxyjev ponudnika VinaProxy v Seleniumu posredujte svoje poverilnice prek selenium-wire ali naložite majhno ozadno razširitev za Chrome onAuthRequired.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP40.000 ₫
- 5+ IP-jev35.000 ₫
- 10+ IP-jev25.000 ₫
- 20+ IP-jev25.000 ₫
- 50+ IP-jev25.000 ₫
- 100+ IP-jev25.000 ₫
- 200+ IP-jev25.000 ₫
- 500+ IP-jev25.000 ₫
- 1000+ IP-jev22.000 ₫
- 2000+ IP-jev20.000 ₫
- 1 IP75.000 ₫
- 3+ IP-jev70.000 ₫
- 5+ IP-jev65.000 ₫
- 10+ IP-jev60.000 ₫
- 50+ IP-jev60.000 ₫
- 100+ IP-jev60.000 ₫
- 200+ IP-jev60.000 ₫
- 500+ IP-jev55.000 ₫
Dva zanesljiva načina za avtentikacijo proxyjev v Seleniumu
Izberite pristop, ki ustreza vašemu programskemu jeziku in gonilniku brskalnika:
| Pristop | Sintaksa konfiguracije | Najbolj primerno za |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Najhitrejša nastavitev v Pythonu; podpira sprotno menjavo proxyjev med sejo |
| Razširitev Chrome za avtentikacijo | Naložite stisnjeno razširitev, ki obravnava chrome.webRequest.onAuthRequired | Standardni Selenium v Pythonu, Javi, C# in undetected-chromedriver |
| Prehod na Playwright | browser.newContext({ proxy: { server, username, password } }) | Izvorna avtentikacija proxyja na nivoju konteksta brez potrebe po razširitvah |
Nasveti za učinkovitost pri strganju s Seleniumom prek proxyjev
- Nastavite
options.page_load_strategy = 'eager', da WebDriver začne interakcijo takoj, ko je DOM interaktiven, ne da bi čakal na počasne sledilce tretjih oseb - Uporabite
--headless=new(Chrome 109+), če izvajate brez glave (headless), da razširitve za Chrome in avtentikacija proxyja delujejo enako kot v grafičnem načinu - Onemogočite upodabljanje slik prek nastavitev za Chrome pri strganju izključno besedilnih podatkov o izdelkih
- Vedno ovijte gonilnik v blok
try / finally: driver.quit(), da preprečite osirotele procese Chromiuma
Navodila po korakih
- 1
Namestite selenium-wire
Zaženite
pip install selenium-wirev svojem navideznem okolju Python. - 2
Določite slovar proxyja VinaProxy
Oblikujte svoje poverilnice kot
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Zaženite webdriver.Chrome z možnostmi seleniumwire_options
Inicializirajte
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Preverite izhodni naslov IP
Pojdite na
driver.get('https://vinaproxy.com/api/my-ip')in preverite, ali odgovor JSON prikazuje vaš IP proxyja.
Pogosta vprašanja
Zakaj `--proxy-server=http://user:pass@ip:port` ne deluje v ChromeOptions?
Chromium namerno odstrani user:pass@ iz ukazne vrstice zastavice --proxy-server. Uporaba selenium-wire, razširitve onAuthRequired ali orodja Playwright to težavo elegantno reši.
Ali lahko zamenjam proxyje brez ponovnega zagona Chroma v selenium-wire?
Da. Kadarkoli dodelite nov slovar spremenljivki driver.proxy = {'http': 'http://...', 'https': 'http://...'}, da sproti zamenjate aktivni nadrejeni proxy.
Ali proxy razširitve za Chrome delujejo v brezglavem načinu (headless)?
Da, če namesto opuščene zastavice --headless uporabite --headless=new.
Uporabljajte Selenium WebDriver v velikem obsegu z neomejenimi statičnimi IP-ji
Takojšnji namenski IPv4 in statični ISP proxyji v 7 državah.
Kupite proxyje za Selenium