Comment configurer un proxy authentifié dans Selenium WebDriver
Mis à jour:
L'argument standard de ChromeDriver --proxy-server=http://ip:port ignore les identifiants user:pass en ligne et fait apparaître une boîte de dialogue de connexion bloquante. Pour utiliser proprement les proxys HTTP(S) authentifiés de VinaProxy dans Selenium, transmettez vos identifiants via selenium-wire ou chargez une mini-extension Chrome onAuthRequired en arrière-plan.
http://user:pass@ip:port (selenium-wire / Chrome proxy extension)- 1 IP40 000 ₫
- 5+ IPs35 000 ₫
- 10+ IPs25 000 ₫
- 20+ IPs25 000 ₫
- 50+ IPs25 000 ₫
- 100+ IPs25 000 ₫
- 200+ IPs25 000 ₫
- 500+ IPs25 000 ₫
- 1000+ IPs22 000 ₫
- 2000+ IPs20 000 ₫
- 1 IP75 000 ₫
- 3+ IPs70 000 ₫
- 5+ IPs65 000 ₫
- 10+ IPs60 000 ₫
- 50+ IPs60 000 ₫
- 100+ IPs60 000 ₫
- 200+ IPs60 000 ₫
- 500+ IPs55 000 ₫
Deux méthodes fiables pour authentifier des proxys dans Selenium
Sélectionnez l'approche qui correspond à votre environnement d'exécution et à votre pilote :
| Approche | Syntaxe de configuration | Idéal pour |
|---|---|---|
selenium-wire (Python) | seleniumwire_options={'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}} | La configuration la plus rapide en Python ; permet de permuter les proxys à chaud en cours de session |
| Extension Auth Chrome | Charger une extension ZIP gérant chrome.webRequest.onAuthRequired | Selenium standard en Python, Java, C# et undetected-chromedriver |
| Migration vers Playwright | browser.newContext({ proxy: { server, username, password } }) | Authentification de proxy native par contexte sans aucune extension |
Optimisation des performances de scraping Selenium sur proxy
- Définissez
options.page_load_strategy = 'eager'afin que WebDriver interagisse dès que le DOM est prêt sans attendre les trackers tiers - Utilisez le drapeau
--headless=new(Chrome 109+) en mode sans interface graphique pour que les extensions et l'authentification fonctionnent exactement comme en mode fenêtré - Désactivez le rendu des images via les préférences Chrome lors de la collecte de données purement textuelles pour économiser la bande passante
- Encadrez toujours votre pilote dans un bloc
try / finally: driver.quit()pour éviter les processus Chromium orphelins en mémoire
Étape par étape
- 1
Installer selenium-wire
Exécutez
pip install selenium-wiredans votre environnement virtuel Python. - 2
Définir le dictionnaire du proxy VinaProxy
Formatez vos identifiants :
sw_options = {'proxy': {'http': 'http://user:pass@ip:port', 'https': 'http://user:pass@ip:port'}}. - 3
Démarrer webdriver.Chrome avec seleniumwire_options
Initialisez le navigateur :
driver = webdriver.Chrome(seleniumwire_options=sw_options). - 4
Vérifier l'adresse IP de sortie
Accédez à
driver.get('https://vinaproxy.com/api/my-ip')et confirmez que la réponse JSON affiche bien l'IP du proxy.
Questions fréquentes
Pourquoi '--proxy-server=http://user:pass@ip:port' ne fonctionne-t-il pas dans ChromeOptions ?
Le moteur Chromium supprime délibérément user:pass@ de l'argument en ligne de commande --proxy-server. L'utilisation de selenium-wire, d'une extension onAuthRequired ou la bascule vers Playwright résout le problème.
Peut-on changer de proxy sans redémarrer Chrome avec selenium-wire ?
Oui. Réassignez à tout moment un nouveau dictionnaire à driver.proxy = {'http': 'http://...', 'https': 'http://...'} pour faire pivoter le proxy à la volée.
Les extensions de proxy Chrome fonctionnent-elles en mode headless ?
Oui, à condition de transmettre le drapeau --headless=new au lieu de l'ancien --headless.
Faites évoluer Selenium WebDriver avec des IP statiques illimitées
Proxys IPv4 dédiés et ISP statiques instantanés dans 7 pays clés.
Acheter des proxys Selenium