In this Article
Node.js est incontournable pour le scraping et l’automatisation. Les deux méthodes les plus courantes pour effectuer des requêtes HTTP sont Axios et le fetch natif. Ajouter un proxy à l’une ou l’autre est simple quand on connaît la bonne méthode, mais chacune a ses pièges : l’option proxy intégrée d’Axios n’est pas fiable pour HTTPS, tandis que le fetch natif ne propose aucune option de proxy. Il faut alors le faire passer par un agent ou un dispatcher. Ce guide explique précisément comment utiliser un proxy avec Node.js (Axios, fetch natif, node-fetch, SOCKS5 et rotation), puis présente les 8 meilleurs proxies pour Node.js en 2026. Avec $1/GB, DataImpulse offre l’un des meilleurs rapports qualité-prix.
Je suis Andrii Byzov, CMO fractionnel spécialisé dans l’IA, et je déploie quotidiennement des scrapers Node. Vous trouverez ci-dessous des exemples prêts à copier-coller qui fonctionnent réellement, le piège Axios-HTTPS, ainsi que les fournisseurs qui méritent votre budget.
Points clés
- Pour Axios, utilisez un agent proxy, pas l’option intégrée. La configuration
proxyd’Axios n’est pas fiable avec les cibles HTTPS. Passez unhttps-proxy-agenten tant quehttpsAgentet définissezproxy: false. - Le
fetchnatif (Node 18+) n’a pas d’option proxy. Faites-le passer par leProxyAgentd’undici au moyen de l’optiondispatcher. - node-fetch (le package npm ; la v3 est uniquement ESM) accepte un
agent— utilisezhttps-proxy-agent. - Les identifiants se placent dans l’URL du proxy —
http://user:pass@host:port— et SOCKS5 utilisesocks-proxy-agent. - DataImpulse offre le meilleur rapport qualité-prix — résidentiel $1/GB en paiement à l’usage, datacenter $0.50/GB, mobile $2/GB, 90M+ IP dans 195 pays, HTTP/HTTPS/SOCKS5, ciblage par pays/ville/ASN.
Comment utiliser un proxy avec Node.js
1. Axios (avec https-proxy-agent : la méthode fiable)
// npm i axios https-proxy-agent
const axios = require('axios');
const { HttpsProxyAgent } = require('https-proxy-agent');
const proxy = 'http://YOUR_LOGIN__cr.us:[email protected]:823'; // __cr.us = US
const agent = new HttpsProxyAgent(proxy);
axios.get('https://httpbin.org/ip', { httpsAgent: agent, proxy: false })
.then(r => console.log(r.data)); // confirm the egress IP
Définir proxy: false indique à Axios d’utiliser l’agent plutôt que sa propre gestion du proxy (défectueuse pour HTTPS). Les identifiants dans l’URL sont appliqués automatiquement.
2. fetch natif (Node 18+) via undici ProxyAgent
// npm i undici
const { ProxyAgent } = require('undici');
const dispatcher = new ProxyAgent('http://YOUR_LOGIN__cr.us:[email protected]:823');
const res = await fetch('https://httpbin.org/ip', { dispatcher });
console.log(await res.json());
Le fetch natif n’a pas d’option proxy. Vous devez donc lui passer un dispatcher. Utilisez setGlobalDispatcher(dispatcher) depuis undici pour l’appliquer à chaque appel fetch.
3. node-fetch via agent
// npm i node-fetch https-proxy-agent
// node-fetch v3 is ESM-only — use import (or pin node-fetch@2 for require)
import fetch from 'node-fetch';
import { HttpsProxyAgent } from 'https-proxy-agent';
const agent = new HttpsProxyAgent('http://YOUR_LOGIN__cr.us:[email protected]:823');
const res = await fetch('https://httpbin.org/ip', { agent });
console.log(await res.json());
4. SOCKS5 et rotation
// npm i socks-proxy-agent — for SOCKS5 (port 824)
const { SocksProxyAgent } = require('socks-proxy-agent');
const agent = new SocksProxyAgent('socks5://YOUR_LOGIN__cr.us:[email protected]:824');
axios.get('https://httpbin.org/ip', { httpsAgent: agent, proxy: false }).then(r => console.log(r.data));
Avec la passerelle résidentielle rotative de DataImpulse, chaque requête qui passe par l’agent utilise une nouvelle IP, sans aucune liste de proxies à gérer. Pour effectuer une rotation d’une liste statique, créez un nouvel agent par requête à partir d’une URL de proxy différente.
Les meilleurs proxies pour Node.js en un coup d’œil
| Fournisseur | Idéal pour Node.js | Prix résidentiel | Protocoles | À noter |
|---|---|---|---|---|
| DataImpulse | Meilleur rapport qualité-prix, scrapers & bots | $1/GB PAYG | HTTP/HTTPS/SOCKS5 | Pool de 90M+, sans expiration |
| Bright Data | Entreprise + services managés | ~$4/GB promo; $8 standard | HTTP/HTTPS/SOCKS5 | Web Unlocker, SERP API, datasets |
| Oxylabs | SLA entreprise | à partir de $6/GB | HTTP/HTTPS/SOCKS5 | Pool de 175M+, API de scraping |
| Decodo | Mid-market, grille géographique complète | $3.75/GB (~$2 à 1TB+) | HTTP/HTTPS/SOCKS5 | Pool de 115M+, sticky jusqu’à 24h |
| IPRoyal | Longues sessions sticky | à partir de $7.35/GB | HTTP/HTTPS/SOCKS5 | Sticky jusqu’à 7 jours; PAYG économique |
| SOAX | Mix résidentiel + mobile | $3.60/GB Starter | HTTP/HTTPS/SOCKS5 | 155M+ résidentiels, 33M+ mobiles |
| Webshare | Budget / libre-service | à partir de $3.50/mo résidentiel; $2.99/mo DC | HTTP/SOCKS5 | Offre gratuite, datacenter le moins cher |
| NetNut | Stabilité ISP-résidentielle | à partir de $3.53/GB | HTTP/HTTPS | IP statiques Consumer-ISP |

Les choix, en bref
DataImpulse est la référence en matière de rapport qualité-prix pour le travail avec Node.js — résidentiel à $1/GB en paiement à l’usage (datacenter $0.50/GB, mobile $2/GB), plus de 90 millions d’IP dans 195 pays, HTTP/HTTPS et SOCKS5, avec ciblage par pays/ville/ASN dans le nom d’utilisateur. Le trafic n’expire jamais : vos essais de développement ne consomment donc pas un abonnement. Taux de réussite publié de 99.51%; G2 4.8/5; support humain 24/7. Pour le scraping Node à gros volume, c’est l’option au coût le plus bas par requête réussie.
Bright Data est le choix entreprise (résidentiel ~$8/GB standard, ~$4 en promotion) avec Web Unlocker, SERP API et jeux de données. Oxylabs (à partir de $6/GB, pool de 175M+) est une option adaptée aux exigences de SLA. Decodo (à partir de $3.75/GB, sessions persistantes jusqu’à 24h) est une option équilibrée pour le mid-market. IPRoyal (à partir de $7.35/GB, sessions persistantes jusqu’à 7 jours) convient aux scripts longs nécessitant une session stable. SOAX ($3.60/GB, 155M+ résidentiels + 33M+ mobiles) propose aussi un solide pool mobile. Webshare (offre gratuite, datacenter à partir de $2.99/mo) est une solution self-service économique pour débuter, et NetNut (à partir de $3.53/GB) est le choix pour la stabilité ISP-résidentielle.
Erreurs courantes avec les proxys Node.js
- S’appuyer sur l’option
proxyintégrée d’Axios pour HTTPS. Elle n’est pas fiable sur les cibles HTTPS — utilisez unhttps-proxy-agentcommehttpsAgentet définissezproxy: false. - S’attendre à ce que le
fetchnatif accepte une optionproxy. Ce n’est pas le cas — passez unProxyAgentundici viadispatcher. - Mauvais agent pour le schéma. Utilisez
https-proxy-agentpour les proxys HTTP/HTTPS etsocks-proxy-agentpour SOCKS5. - Aucun délai d’expiration. Un proxy hors service peut bloquer une requête ; définissez un délai d’expiration sur Axios ou un
AbortControllerpour fetch. - IP de datacenter sur des cibles protégées : elles sont rapidement bloquées ; utilisez des proxys résidentiels et des en-têtes réalistes (User-Agent).
Proxys rotatifs vs sticky avec Node.js
Pour le scraping à grande échelle, une passerelle résidentielle rotative est idéale : chaque requête qui passe par l’agent obtient une nouvelle IP. Pour les flux avec état (connexion puis appels de suivi), conservez un proxy sticky et réutilisez une instance Axios ou un cookie jar afin de conserver la même IP et les mêmes cookies. La plupart des opérations de scraping avec Node sont sans état, la rotation est donc généralement le choix par défaut.
Quel type de proxy pour Node.js — résidentiel, datacenter ou mobile ?
- Résidentiel ($1/GB) : le choix par défaut pour les cibles protégées (e-commerce, SERP, réseaux sociaux). Si vous devez en choisir un, choisissez celui-ci.
- Mobile ($2/GB) : de véritables IP d’opérateurs pour les cibles les plus difficiles et les surfaces web mobiles.
- Datacenter ($0.50/GB) : le moins cher et le plus rapide pour les tâches non protégées, les API et votre propre infrastructure ; ne l’utilisez pas sur des sites fortement protégés par des systèmes anti-bot.
DataImpulse propose les trois sur un seul compte en paiement à l’usage, afin qu’un scraper Node puisse acheminer chaque requête vers le bon type de proxy via le nom d’utilisateur et l’endpoint.
Comment démarrer avec DataImpulse + Node.js
Étape 1. Créez un compte DataImpulse et récupérez des identifiants résidentiels. L’offre de découverte à $5 / 5GB n’expire jamais : elle constitue un véritable budget de test.
Étape 2. Construisez un https-proxy-agent à partir de http://YOUR_LOGIN__cr.us:[email protected]:823, passez-le comme httpsAgent (Axios) ou dispatcher/agent (fetch/node-fetch), et ajoutez un code pays pour le ciblage géographique. Utilisez socks-proxy-agent + le port 824 pour SOCKS5.
Étape 3. Ajoutez des délais d’expiration, envoyez des en-têtes réalistes et laissez la passerelle rotative fournir une nouvelle IP à chaque requête. Consultez les tutoriels DataImpulse et la page des proxies résidentiels.
FAQ
Comment utiliser un proxy avec Axios ?
Utilisez un agent proxy, pas l’option intégrée d’Axios (elle n’est pas fiable pour HTTPS). Installez https-proxy-agent, créez un agent à partir de votre URL de proxy, puis passez-le comme httpsAgent avec proxy: false : axios.get(url, { httpsAgent: new HttpsProxyAgent('http://user:pass@host:port'), proxy: false }). Pour DataImpulse, utilisez gw.dataimpulse.com:823.
Comment utiliser un proxy avec le fetch natif dans Node.js ?
Le fetch natif (Node 18+) n’a pas d’option proxy — faites-le passer par le ProxyAgent d’undici : const dispatcher = new ProxyAgent('http://user:pass@host:port'); fetch(url, { dispatcher }). Utilisez setGlobalDispatcher(dispatcher) pour l’appliquer à tous les appels fetch.
Quel est le meilleur proxy pour Node.js ?
Des proxys résidentiels pour les cibles protégées — DataImpulse à $1/GB est le choix offrant le meilleur rapport qualité-prix (HTTP/HTTPS/SOCKS5, plus de 90 millions d’IP, trafic sans expiration). Bright Data et Oxylabs sont les options enterprise ; Webshare est le moins cher pour démarrer. Tous fonctionnent avec un https-proxy-agent (Axios/node-fetch) ou undici ProxyAgent (fetch natif).
Node.js prend-il en charge les proxys SOCKS5 ?
Oui — utilisez le package socks-proxy-agent. Créez new SocksProxyAgent('socks5://user:pass@host:port') et passez-le comme agent (Axios httpsAgent, node-fetch agent). DataImpulse expose SOCKS5 sur le port 824. Pour le fetch natif, un dispatcher SOCKS compatible avec undici est nécessaire.
Pourquoi mon proxy Axios ne fonctionne-t-il pas sur les sites HTTPS ?
La configuration proxy intégrée d’Axios présente depuis longtemps des problèmes pour établir des tunnels HTTPS. La solution consiste à la contourner : définissez proxy: false et passez un https-proxy-agent comme httpsAgent. L’agent gère correctement le tunnel CONNECT. Placez les identifiants dans l’URL du proxy.
Combien coûtent les proxys Node.js ?
Le résidentiel brut est facturé au GB — DataImpulse $1/GB (prix plancher avantageux), NetNut à partir de $3.53, SOAX $3.60, Decodo $3.75, Oxylabs à partir de $6, IPRoyal $7.35 ; Webshare propose des abonnements économiques à partir de $3.50/mo. Une page récupérée ne représente qu’une petite fraction d’un GB, donc le résidentiel facturé au GB est bien moins cher que les API managées facturées à l’enregistrement pour le scraping à gros volume ; les options managées conviennent aux cibles les plus difficiles.
