Sådan opsætter du en proxy med godkendelse i Selenium WebDriver
Updated:
Standardflags i ChromeDriver som --proxy-server=http://ip:port ignorerer indlejrede user:pass-loginoplysninger og åbner en blokerende logindialog. For at bruge VinaProxy godkendte HTTP(S)-proxier problemfrit i Selenium kan du sende dine loginoplysninger via selenium-wire eller indlæse en lille onAuthRequired-baggrundsudvidelse til Chrome.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP40.000 ₫
- 5+ IP'er35.000 ₫
- 10+ IP'er25.000 ₫
- 20+ IP'er25.000 ₫
- 50+ IP'er25.000 ₫
- 100+ IP'er25.000 ₫
- 200+ IP'er25.000 ₫
- 500+ IP'er25.000 ₫
- 1000+ IP'er22.000 ₫
- 2000+ IP'er20.000 ₫
- 1 IP75.000 ₫
- 3+ IP'er70.000 ₫
- 5+ IP'er65.000 ₫
- 10+ IP'er60.000 ₫
- 50+ IP'er60.000 ₫
- 100+ IP'er60.000 ₫
- 200+ IP'er60.000 ₫
- 500+ IP'er55.000 ₫
To pålidelige måder at godkende proxier på i Selenium
Vælg den fremgangsmåde, der passer til dit programmeringssprog og din browserdriver:
| Fremgangsmåde | Konfigurationssyntaks | Bedst til |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Hurtigste Python-opsætning; understøtter udskiftning af proxier midt i sessionen |
| Chrome Auth-udvidelse | Indlæs en zippet udvidelse, der håndterer chrome.webRequest.onAuthRequired | Standard Selenium på tværs af Python, Java, C# og undetected-chromedriver |
| Migrer til Playwright | browser.newContext({ proxy: { server, username, password } }) | Indbygget proxy-godkendelse pr. kontekst helt uden krav om udvidelser |
Ydelsestips til Selenium-scraping via proxier
- Indstil
options.page_load_strategy = 'eager', så WebDriver interagerer, så snart DOM'en er interaktiv, uden at vente på langsomme tredjepartstrackere - Brug
--headless=new(Chrome 109+), hvis du kører headless, så Chrome-udvidelser og proxy-godkendelse fungerer identisk med tilstanden med grafisk brugerflade - Deaktiver billedgengivelse via Chrome-indstillinger, når du scraper rene tekstproduktdata
- Omslut altid din driver i en
try / finally: driver.quit()-blok for at forhindre herreløse Chromium-processer
Trin for trin
- 1
Installer selenium-wire
Kør
pip install selenium-wirei dit virtuelle Python-miljø. - 2
Definer din VinaProxy-proxy-dictionary
Formater dine loginoplysninger som
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Start webdriver.Chrome med seleniumwire_options
Initialiser
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Bekræft din udgående IP-adresse
Naviger til
driver.get('https://vinaproxy.com/api/my-ip'), og bekræft, at JSON-svaret viser din proxy-IP.
Ofte stillede spørgsmål
Hvorfor virker `--proxy-server=http://user:pass@ip:port` ikke i ChromeOptions?
Chromium fjerner bevidst user:pass@ fra kommandolinjeflaget --proxy-server. Brug af selenium-wire, en onAuthRequired-udvidelse eller Playwright løser dette problemfrit.
Kan jeg skifte proxier uden at genstarte Chrome i selenium-wire?
Ja. Tildel en ny dictionary til driver.proxy = {'http': 'http://...', 'https': 'http://...'} på et vilkårligt tidspunkt for at skifte den aktive upstream-proxy undervejs.
Fungerer Chrome-proxy-udvidelser i headless-tilstand?
Ja, så længe du angiver --headless=new i stedet for det ældre --headless-flag.
Kør Selenium WebDriver i stor skala med ubegrænsede statiske IP'er
Øjeblikkelige dedikerede IPv4- og statiske ISP-proxier i 7 lande.
Køb Selenium-proxier