Cum să configurezi un proxy autentificat în Selenium WebDriver
Updated:
Flag-urile standard ChromeDriver --proxy-server=http://ip:port ignoră credențialele inline user:pass și afișează o fereastră blocantă de autentificare. Pentru a utiliza proxy-uri HTTP(S) VinaProxy autentificate fără probleme în Selenium, transmite credențialele prin selenium-wire sau încarcă o mică extensie Chrome de fundal onAuthRequired.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP40.000 VND
- 5+ IP-uri35.000 VND
- 10+ IP-uri25.000 VND
- 20+ IP-uri25.000 VND
- 50+ IP-uri25.000 VND
- 100+ IP-uri25.000 VND
- 200+ IP-uri25.000 VND
- 500+ IP-uri25.000 VND
- 1000+ IP-uri22.000 VND
- 2000+ IP-uri20.000 VND
- 1 IP75.000 VND
- 3+ IP-uri70.000 VND
- 5+ IP-uri65.000 VND
- 10+ IP-uri60.000 VND
- 50+ IP-uri60.000 VND
- 100+ IP-uri60.000 VND
- 200+ IP-uri60.000 VND
- 500+ IP-uri55.000 VND
Două metode fiabile pentru a autentifica proxy-uri în Selenium
Alege abordarea potrivită pentru limbajul tău de programare și driverul de browser:
| Abordare | Sintaxă de configurare | Recomandat pentru |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Cea mai rapidă configurare în Python; permite schimbarea proxy-urilor în timpul sesiunii |
| Extensie de autentificare Chrome | Încarcă o extensie zip care gestionează chrome.webRequest.onAuthRequired | Selenium standard în Python, Java, C# și undetected-chromedriver |
| Migrare la Playwright | browser.newContext({ proxy: { server, username, password } }) | Autentificare proxy nativă per context, fără a necesita extensii |
Sfaturi de performanță pentru scraping cu Selenium prin proxy-uri
- Setează
options.page_load_strategy = 'eager'pentru ca WebDriver să interacționeze de îndată ce DOM-ul este interactiv, fără a aștepta scripturile lente de urmărire terțe - Folosește
--headless=new(Chrome 109+) în modul headless, astfel încât extensiile Chrome și autentificarea proxy să funcționeze identic cu modul grafic - Dezactivează redarea imaginilor din preferințele Chrome când extragi doar date text despre produse
- Include întotdeauna driverul într-un bloc
try / finally: driver.quit()pentru a preveni procesele Chromium orfane
Pas cu pas
- 1
Instalează selenium-wire
Rulează
pip install selenium-wireîn mediul tău virtual de Python. - 2
Definește dicționarul de proxy VinaProxy
Formatează credențialele ca
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Lansează webdriver.Chrome cu seleniumwire_options
Inițializează
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Verifică adresa IP de ieșire
Accesează
driver.get('https://vinaproxy.com/api/my-ip')și confirmă că răspunsul JSON afișează IP-ul proxy-ului tău.
Întrebări frecvente
De ce nu funcționează `--proxy-server=http://user:pass@ip:port` în ChromeOptions?
Chromium elimină intenționat user:pass@ din flag-ul --proxy-server din linia de comandă. Utilizarea selenium-wire, a unei extensii onAuthRequired sau a Playwright rezolvă această problemă în mod elegant.
Pot schimba proxy-urile fără a reporni Chrome în selenium-wire?
Da. Atribuie un nou dicționar la driver.proxy = {'http': 'http://...', 'https': 'http://...'} în orice moment pentru a schimba din mers proxy-ul upstream activ.
Funcționează extensiile de proxy pentru Chrome în modul headless?
Da, atât timp cât transmiți --headless=new în loc de flag-ul vechi --headless.
Rulează Selenium WebDriver la scară largă cu IP-uri statice nelimitate
Proxy-uri Dedicated IPv4 și Static ISP instant în 7 țări.
Cumpără proxy-uri Selenium