Jak nastavit proxy s autentizací v Selenium WebDriver
Updated:
Standardní přepínače ChromeDriveru --proxy-server=http://ip:port ignorují vložené přihlašovací údaje user:pass a zobrazují blokující přihlašovací dialog. Chcete-li v Selenium bez problémů používat autentizované HTTP(S) proxy VinaProxy, předejte přihlašovací údaje přes selenium-wire nebo načtěte malé rozšíření Chrome na pozadí pro 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
Dva spolehlivé způsoby autentizace proxy v Selenium
Vyberte si přístup odpovídající vašemu jazyku a ovladači prohlížeče:
| Přístup | Syntaxe konfigurace | Nejvhodnější pro |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Nejrychlejší nastavení v Pythonu; podporuje výměnu proxy za běhu relace |
| Rozšíření Chrome pro autentizaci | Načtení zabaleného rozšíření obsluhujícího chrome.webRequest.onAuthRequired | Standardní Selenium napříč jazyky Python, Java, C# a undetected-chromedriver |
| Přechod na Playwright | browser.newContext({ proxy: { server, username, password } }) | Nativní autentizace proxy pro jednotlivé kontexty bez nutnosti rozšíření |
Tipy pro vyšší výkon při scrapování přes proxy v Selenium
- Nastavte
options.page_load_strategy = 'eager', aby WebDriver interagoval ihned po zpřístupnění DOMu a nečekal na pomalé sledovací skripty třetích stran - Při běhu v headless režimu použijte
--headless=new(Chrome 109+), aby rozšíření Chrome a autentizace proxy fungovaly stejně jako v režimu s grafickým rozhraním - Při scrapování čistě textových dat produktů vypněte vykreslování obrázků v předvolbách Chrome
- Vždy obalte ovladač do bloku
try / finally: driver.quit(), abyste zabránili vzniku osiřelých procesů Chromia
Krok za krokem
- 1
Nainstalujte selenium-wire
Spusťte
pip install selenium-wireve svém virtuálním prostředí Pythonu. - 2
Definujte slovník proxy VinaProxy
Zformátujte své přihlašovací údaje jako
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Spusťte webdriver.Chrome s parametrem seleniumwire_options
Inicializujte
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Ověřte výstupní IP adresu
Přejděte na
driver.get('https://vinaproxy.com/api/my-ip')a potvrďte, že odpověď JSON zobrazuje IP adresu vaší proxy.
Často kladené otázky
Proč v ChromeOptions nefunguje `--proxy-server=http://user:pass@ip:port`?
Chromium záměrně odstraňuje user:pass@ z příkazového parametru --proxy-server. Použití selenium-wire, rozšíření s onAuthRequired nebo Playwright tento problém čistě řeší.
Lze v selenium-wire přepínat proxy bez restartování Chrome?
Ano. Přiřazením nového slovníku do driver.proxy = {'http': 'http://...', 'https': 'http://...'} můžete kdykoli za běhu přepnout aktivní upstream proxy.
Fungují proxy rozšíření Chrome v headless režimu?
Ano, pokud místo zastaralého přepínače --headless předáte --headless=new.
Provozujte Selenium WebDriver ve velkém měřítku s neomezenými statickými IP
Okamžité dedikované IPv4 a statické ISP proxy v 7 zemích.
Koupit proxy pro Selenium