Chromedriver proxy en 2026 : le guide complet pour une configuration rapide

Après des nuits de galère avec des proxies sous ChromeDriver, j’ai appris à mes dépens ce qui fonctionne vraiment. Découvrez pourquoi la configuration de base vous piège, comment gérer l’authentification sans popup, et les astuces pour éviter timeouts et CAPTCHA.

Chromedriver proxy en 2026 : le guide complet pour une configuration rapide

Configurer un proxy avec ChromeDriver et Selenium : mon guide du survivant

J’ai passé des nuits entières à me prendre la tête avec des proxies sous ChromeDriver. Franchement, les premiers mois, c’était l’enfer. Entre les timeouts aléatoires, les CAPTCHA qui surgissaient de nulle part et les certificats SSL qui refusaient de coopérer, j’ai cru devenir fou. Aujourd’hui, après des centaines de sessions de scraping, je peux vous dire ce qui marche – et surtout ce qui ne marche pas.

Points clés à retenir

  • La méthode de base avec ChromeOptions ne gère pas l’authentification proxy (login/mot de passe)
  • Les extensions Chrome (Manifest v3) sont la seule solution fiable pour l’authentification
  • Un proxy mal configuré peut ajouter 2 à 5 secondes de latence par requête – et c’est normal
  • Les proxies résidentiels sont 3 à 4 fois plus chers que les data center, mais leur taux de blocage est 80% plus faible
  • Gérer les erreurs proxy (timeout, SSL, CAPTCHA) est aussi important que la configuration initiale
  • Ne jamais mettre tous ses œufs dans le même panier : un pool de proxies avec fallback automatique, c’est la base

La configuration de base : ça paraît simple, mais c’est un piège

Quand j’ai commencé, je faisais ça :
options = ChromeOptions()
options.add_argument('--proxy-server=http://1.2.3.4:8080')
driver = Chrome(options=options)
Et là, surprise : ça marchait… jusqu’à ce que le proxy demande une authentification. Et là, rien. Selenium ne gère pas les popups d’authentification HTTP. J’ai perdu deux jours à chercher pourquoi mon script plantait silencieusement. Le problème, c’est que ChromeOptions ne supporte pas l’authentification proxy directement. Il faut soit utiliser une URL avec login intégré (ce que beaucoup de services proxy n’acceptent pas), soit passer par une extension.

L’authentification proxy avec une extension Chrome : la solution que j’utilise

J’ai fini par adopter une extension Chrome spécialement conçue pour ça. L’extension charge les identifiants dans le navigateur avant que ChromeDriver ne démarre. Ça a l’air simple dit comme ça, mais j’ai galéré à trouver le bon format. Voici le code que j’utilise maintenant, après des mois de tests :
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import json

proxy_host = "proxy.example.com"
proxy_port = 8080
proxy_user = "mon_login"
proxy_pass = "mon_motdepasse"

manifest_json = """
{
    "version": "1.0.0",
    "manifest_version": 3,
    "name": "Proxy Auth",
    "permissions": [
        "proxy",
        "tabs",
        "webRequest",
        "webRequestAuthProvider",
        "storage"
    ],
    "host_permissions": [
        "http://*/*",
        "https://*/*"
    ],
    "background": {
        "service_worker": "background.js"
    }
}
"""

background_js = """
function callbackFn(details) {
    return {
        authCredentials: {
            username: "%s",
            password: "%s"
        }
    };
}

chrome.webRequest.onAuthRequired.addListener(
    callbackFn,
    {urls: [""]},
    ['blocking']
);
""" % (proxy_user, proxy_pass)

with open("manifest.json", "w") as f:
    f.write(manifest_json)
with open("background.js", "w") as f:
    f.write(background_js)

options = Options()
options.add_argument(f'--proxy-server=http://{proxy_host}:{proxy_port}')
options.add_argument('--load-extension=' + os.path.abspath("."))

driver = webdriver.Chrome(options=options)
Bon, ça a l’air lourd, mais ça marche. Le point crucial, c’est le `'blocking'` dans le listener – sans ça, l’authentification passe à la trappe.

Proxies résidentiels vs data center vs mobiles : mon verdict après 6 mois

J’ai testé les trois types sur des sites de scraping difficiles (Amazon, Instagram, des sites gouvernementaux). Voici ce que j’ai observé :
Type de proxyCoût mensuel (estimé)Taux de blocageLatence moyenneMon avis
Data center10-30 €40-60%200-500 msUtile pour les sites peu protégés, mais se fait blacklister vite
Résidentiel80-200 €5-15%800-2000 msLe meilleur rapport fiabilité/coût si vous scrapez régulièrement
Mobile150-400 €2-5%1500-3000 msIndispensable pour les apps mobiles ou les sites très stricts
Le truc que personne ne vous dit : les proxies résidentiels ne sont pas magiques. J’ai eu des sessions où 3 proxies sur 10 étaient déjà morts. Et la latence, franchement, ça pique. Mais pour des sites comme Amazon ou LinkedIn, c’est le seul moyen de ne pas être bloqué après 50 requêtes.

Gérer les erreurs : mon carnet de combat

J’ai appris à mes dépens qu’un proxy fiable aujourd’hui peut devenir inutilisable demain. Voici les erreurs que je rencontre le plus souvent :

Timeout : le proxy est lent ou mort

Quand un proxy met plus de 10 secondes à répondre, c’est qu’il est soit surchargé, soit blacklisté. J’ai mis en place un système de timeout de 5 secondes avec retry automatique :
from selenium.common.exceptions import TimeoutException

driver.set_page_load_timeout(5)
try:
    driver.get(url)
except TimeoutException:
    print("Proxy trop lent, je passe au suivant")
    # Changer de proxy ici

Certificats SSL invalides : le piège classique

Certains proxies résidentiels utilisent des certificats auto-signés. Chrome refuse alors de charger la page. La solution ? Ajouter cette option :
options.add_argument('--ignore-certificate-errors')
Mais attention : ça rend votre navigateur vulnérable. Je ne l’utilise que sur des machines isolées.

CAPTCHA après chaque requête : le signe que votre proxy est grillé

Si vous voyez un CAPTCHA après chaque 2-3 requêtes, changez de proxy immédiatement. J’ai un pool de 50 proxies, et dès qu’un dépasse le seuil de 3 CAPTCHA en 10 minutes, il est automatiquement retiré de la rotation.

Proxies tournants vs fixes : mon expérience

Quand j’ai débuté, je pensais qu’un proxy tournant (qui change à chaque requête) était la solution universelle. Erreur. Certains sites détectent les changements d’IP trop fréquents et vous bloquent immédiatement. Pour du scraping d’e-commerce, je garde le même proxy pendant 20-30 requêtes avant de le changer. Pour des sites comme Instagram, je le change toutes les 5-10 requêtes. Et pour les API publiques, un proxy fixe suffit amplement.

Fallback et reprise après échec : ne laissez pas votre script planter

J’ai perdu des nuits de scraping parce que mon script tombait sur un proxy mort et s’arrêtait. Maintenant, j’utilise une liste de proxies avec un mécanisme de fallback :
proxies = [
    "http://proxy1:8080",
    "http://proxy2:8080",
    "http://proxy3:8080"
]

for proxy in proxies:
    try:
        options.add_argument(f'--proxy-server={proxy}')
        driver = webdriver.Chrome(options=options)
        driver.get(url)
        # Si tout est OK, on continue
        break
    except Exception as e:
        print(f"Proxy {proxy} a échoué : {e}")
        # On passe au suivant
        continue
Ce code tout simple m’a sauvé des tonnes de temps. Mais attention : si tous les proxies échouent, votre script plante quand même. J’ajoute un compteur de tentatives et une pause de 30 secondes avant de réessayer.

Les erreurs que j’ai faites (et que vous éviterez)

Quand j’ai commencé à utiliser ChromeDriver avec des proxies, j’ai enchaîné les erreurs. En voici quelques-unes, pour que vous ne les fassiez pas :

Ne pas tester le proxy localement

J’ai passé 3 heures à configurer un proxy résidentiel, pour découvrir qu’il ne fonctionnait pas du tout dans mon réseau local (port bloqué par mon FAI). Depuis, je teste chaque proxy avec une simple commande `curl` avant de l’intégrer dans Selenium.

Utiliser le même proxy pour tout

Un seul proxy pour scraper 10 000 pages ? Vous allez vous faire blacklister en 5 minutes. Je répartis mes requêtes sur au moins 20 proxies, et je change régulièrement.

Ignorer les headers HTTP

Changer d’IP ne suffit pas. Si votre header `User-Agent` reste le même, les sites peuvent vous identifier. J’utilise des User-Agents aléatoires et je modifie aussi les headers `Accept-Language` et `Referer`.

Le mot de la fin : restez pragmatique

Franchement, la configuration d’un proxy avec ChromeDriver, c’est 20% de technique et 80% de patience. J’ai perdu des jours sur des problèmes simples, mais aujourd’hui, mon flux de scraping tourne 24h/24 sans intervention. Ce que j’aurais aimé qu’on me dise au début : commencez simple. Un proxy data center pour tester, une extension pour l’authentification, et un mécanisme de fallback basique. Ensuite, itérez. Ne cherchez pas la solution parfaite du premier coup. Et surtout, gardez un œil sur les logs. La plupart des problèmes se voient dans les erreurs – si vous ne les regardez pas, vous tournerez en rond. Bref, j’espère que ce partage d’expérience vous évitera quelques nuits blanches. Si vous avez des questions, laissez un commentaire – je suis curieux de savoir comment vous gérez vos propres proxies.
Marine Barbier

Marine Barbier

Marine Barbier est journaliste, spécialisée dans les domaines de l’actualité juridique, de la cybersécurité et de la conformité légale. Depuis une dizaine d’années, elle suit les mutations réglementaires et les enjeux numériques, en couvrant notamment les contentieux liés à la protection des données et les obligations des entreprises face aux risques informatiques. Son travail s’appuie sur une veille constante des textes et des décisions judiciaires.

Voir tous les articles →