Hvordan sette opp en autentisert proxy i Selenium WebDriver
Updated:
Standard ChromeDriver-flagg som --proxy-server=http://ip:port ignorerer direkte angitte user:pass-påloggingsdetaljer og viser en blokkerende innloggingsdialog. For å bruke autentiserte HTTP(S)-proxyer fra VinaProxy sømløst i Selenium, kan du sende påloggingsdetaljene via selenium-wire eller laste inn en liten onAuthRequired-bakgrunnsutvidelse for Chrome.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP40 000 VND
- 5+ IP-er35 000 VND
- 10+ IP-er25 000 VND
- 20+ IP-er25 000 VND
- 50+ IP-er25 000 VND
- 100+ IP-er25 000 VND
- 200+ IP-er25 000 VND
- 500+ IP-er25 000 VND
- 1000+ IP-er22 000 VND
- 2000+ IP-er20 000 VND
- 1 IP75 000 VND
- 3+ IP-er70 000 VND
- 5+ IP-er65 000 VND
- 10+ IP-er60 000 VND
- 50+ IP-er60 000 VND
- 100+ IP-er60 000 VND
- 200+ IP-er60 000 VND
- 500+ IP-er55 000 VND
To pålitelige måter å autentisere proxyer på i Selenium
Velg fremgangsmåten som passer for ditt kjøremiljø og din nettleserdriver:
| Fremgangsmåte | Konfigurasjonssyntaks | Passer best for |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Raskeste Python-oppsett; støtter bytte av proxyer underveis i økten |
| Chrome-autentiseringsutvidelse | Last inn en zippet utvidelse som håndterer chrome.webRequest.onAuthRequired | Standard Selenium på tvers av Python, Java, C# og undetected-chromedriver |
| Migrer til Playwright | browser.newContext({ proxy: { server, username, password } }) | Innebygd proxy-autentisering per kontekst uten behov for utvidelser |
Ytelsestips for web-scraping med Selenium over proxyer
- Sett
options.page_load_strategy = 'eager'slik at WebDriver samhandler så snart DOM er interaktiv uten å vente på trege tredjepartssporinger - Bruk
--headless=new(Chrome 109+) ved kjøring i hodeløs modus, slik at Chrome-utvidelser og proxy-autentisering fungerer likt som i vanlig modus - Deaktiver bildegjengivelse via innstillingene i Chrome når du skraper rene tekstdata for produkter
- Pakk alltid driveren inn i en
try / finally: driver.quit()-blokk for å forhindre foreldreløse Chromium-prosesser
Trinn for trinn
- 1
Installer selenium-wire
Kjør
pip install selenium-wirei ditt virtuelle Python-miljø. - 2
Definer proxy-ordboken for VinaProxy
Formater påloggingsdetaljene dine 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
Bekreft utgående IP-adresse
Gå til
driver.get('https://vinaproxy.com/api/my-ip')og bekreft at JSON-responsen viser din proxy-IP.
Ofte stilte spørsmål
Hvorfor fungerer ikke `--proxy-server=http://user:pass@ip:port` i ChromeOptions?
Chromium fjerner med vilje user:pass@ fra kommandolinjeflagget --proxy-server. Bruk av selenium-wire, en onAuthRequired-utvidelse eller Playwright løser dette på en elegant måte.
Kan jeg bytte proxy uten å starte Chrome på nytt i selenium-wire?
Ja. Tilordne en ny ordbok til driver.proxy = {'http': 'http://...', 'https': 'http://...'} når som helst for å bytte den aktive oppstrømsproxyen fortløpende.
Fungerer Chrome-proxyutvidelser i hodeløs modus?
Ja, så lenge du oppgir --headless=new i stedet for det foreldede flagget --headless.
Kjør Selenium WebDriver i stor skala med ubegrensede statiske IP-er
Umiddelbare dedikerte IPv4- og statiske ISP-proxyer i 7 land.
Kjøp Selenium-proxyer