Come configurare un proxy autenticato in Selenium WebDriver
Aggiornato:
Il parametro convenzionale di ChromeDriver --proxy-server=http://ip:port ignora le credenziali user:pass in linea e visualizza una finestra di accesso bloccante. Per impiegare i proxy HTTP(S) autenticati di VinaProxy in Selenium in modo trasparente, passa le credenziali tramite selenium-wire oppure carica una mini-estensione Chrome in background per 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
Due metodi affidabili per autenticare proxy in Selenium
Seleziona la modalità più indicata per il tuo linguaggio e ambiente di sviluppo:
| Metodo | Sintassi di configurazione | Ideale per |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | Configurazione più rapida in Python; consente lo switch dinamico del proxy a runtime |
| Estensione Auth per Chrome | Caricare un'estensione ZIP che gestisce chrome.webRequest.onAuthRequired | Selenium standard in Python, Java, C# e undetected-chromedriver |
| Passaggio a Playwright | browser.newContext({ proxy: { server, username, password } }) | Supporto nativo all'autenticazione proxy per contesto senza estensioni aggiuntive |
Ottimizzazione delle prestazioni di scraping con Selenium e proxy
- Imposta
options.page_load_strategy = 'eager'per iniziare a interagire non appena il DOM è accessibile, senza attendere script di tracciamento esterni - Usa
--headless=new(Chrome 109+) nelle esecuzioni headless affinché estensioni e autenticazione operino esattamente come nella modalità visibile - Disabilita il caricamento delle immagini nelle preferenze di Chrome quando estrai solo testo per ridurre la banda e velocizzare il caricamento
- Includi sempre il driver in una struttura
try / finally: driver.quit()per prevenire processi orfani di Chromium
Passo dopo passo
- 1
Installare selenium-wire
Esegui
pip install selenium-wirenel tuo virtual environment Python. - 2
Definire il dizionario del proxy VinaProxy
Formatta i dati:
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Avviare webdriver.Chrome con seleniumwire_options
Inizializza il browser:
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Verificare l'indirizzo IP di uscita
Naviga su
driver.get('https://vinaproxy.com/api/my-ip')e controlla che il JSON indichi l'IP del proxy.
Domande frequenti
Perché '--proxy-server=http://user:pass@ip:port' non funziona in ChromeOptions?
Chromium rimuove programmaticamente user:pass@ dalla riga di comando del flag --proxy-server. L'adozione di selenium-wire, di un'estensione onAuthRequired o di Playwright risolve il problema alla radice.
Posso cambiare proxy senza riavviare Chrome in selenium-wire?
Sì. È sufficiente assegnare in qualsiasi momento un nuovo dizionario a driver.proxy = {'http': 'http://...', 'https': 'http://...'} per aggiornare il proxy a caldo.
Le estensioni proxy per Chrome funzionano in modalità headless?
Sì, a patto di utilizzare l'opzione moderna --headless=new al posto del vecchio flag --headless.
Scala Selenium WebDriver con IP statici dedicati e traffico illimitato
Proxy IPv4 dedicati e ISP statici attivi all'istante in 7 paesi.
Acquista proxy per Selenium