Configuration de proxy Puppeteer avec authentification
Puppeteer prend le serveur proxy comme un drapeau de lancement, mais le nom d'utilisateur et le mot de passe vont ailleurs — via page.authenticate(). Voici le modèle correct pour les proxies s4m authentifiés, avec le code Node complet.
Pourquoi le drapeau seul n'est pas suffisant
Chromium — the browser Puppeteer drives — accepts a proxy through the --proxy-server command-line flag. The catch is that Chromium's flag format does not accept credentials inline: you cannot write --proxy-server=http://USER:PASS@host:3128 and expect it to work. When the proxy challenges for authentication, Chromium raises a native auth prompt that a headless browser cannot answer on its own.
Puppeteer's answer is page.authenticate({ username, password }). You pass the bare host and port to the launch flag, then hand the credentials to the page, and Puppeteer responds to the proxy's 407 Proxy Authentication Required challenge for you. With s4m that means launching with --proxy-server=http://proxy.s4m.online:3128 and authenticating with your USER:PASS. The HTTP endpoint (port 3128) is the right one here — Chromium's proxy flag speaks HTTP and SOCKS, but authenticated SOCKS5 with a browser is fiddly, so HTTP is the reliable choice. See the proxy overview and the proxy authentication guide.
Lancement de Puppeteer authentifié
L'hôte du proxy va dans le drapeau de lancement ; USER:PASS passe par page.authenticate(). Remplacez les identifiants avant de lancer.
// npm install puppeteer
const puppeteer = require("puppeteer");
const HOST = "proxy.s4m.online";
const PORT = 3128; // HTTP proxy endpoint
const USER = "USER";
const PASS = "PASS";
(async () => {
const browser = await puppeteer.launch({
headless: "new",
args: [
`--proxy-server=http://${HOST}:${PORT}`,
// credentials are NOT allowed here — see page.authenticate below
"--no-sandbox",
],
});
const page = await browser.newPage();
// This answers the proxy's 407 challenge:
await page.authenticate({ username: USER, password: PASS });
await page.goto("https://api.ipify.org?format=json", {
waitUntil: "networkidle0",
timeout: 30000,
});
console.log("Exit IP:", await page.evaluate(() => document.body.innerText));
await browser.close();
})();Choses qui déroutent les gens
Les erreurs qui se transforment en une page blanche ou un 407.
Les identifiants vont à la page
Ne mettez jamais USER:PASS dans --proxy-server ; Chromium l'ignore. Appelez toujours page.authenticate() avant votre première navigation, une fois par page.
Utilisez le point de terminaison HTTP
SOCKS5 authentifié dans un navigateur est peu fiable. Indiquez --proxy-server à http://proxy.s4m.online:3128 et laissez page.authenticate gérer la connexion.
Authentifiez-vous avant d'aller à
Appelez page.authenticate() avant page.goto(), sinon la première requête atteint le proxy sans identifiants et renvoie 407.
Un contexte, une identité
Chaque contexte de navigateur porte sa propre authentification. Pour plusieurs identités, lancez des contextes séparés plutôt que de ré-authentifier une page partagée.
Blocages, empreintes digitales et honnêteté
Un proxy cache votre IP ; il ne cache pas que vous automatisez un navigateur. Les systèmes anti-bot modernes examinent également les propriétés du navigateur, le timing et les empreintes TLS. Si une cible signale Chromium sans tête, un proxy seul ne suffira pas — vous aurez peut-être besoin de paramètres de viewport et d'User-Agent réalistes, ainsi que d'un rythme semblable à celui d'un humain, et même dans ce cas, certains sites sont tout simplement interdits à l'automatisation.
Soyez honnête sur le type de proxy également : les proxies s4m sont datacenter, ce qui est parfait pour les tests, la surveillance et les sites modérément défendus, mais les cibles fortement défendues peuvent bloquer les plages de datacenter. Lorsque vous avez besoin d'une sortie stable pour une connexion ou une liste blanche, ajoutez une IP personnelle dédiée. Vous préférez Playwright ? Le modèle est presque identique — consultez le guide des proxies Playwright. Vérifiez votre sortie avec les outils et prototypez contre la liste de proxies gratuits.
Questions, réponses
Pourquoi ma demande Puppeteer renvoie-t-elle 407 ?
Parce que le proxy demande une authentification et que vous n'y avez pas répondu. Appelez page.authenticate({ username, password }) avant votre premier page.goto() — les identifiants dans le drapeau --proxy-server sont ignorés par Chromium.
Puppeteer peut-il utiliser un proxy SOCKS5 ?
Le drapeau proxy de Chromium peut pointer vers SOCKS, mais SOCKS5 authentifié dans un navigateur est peu fiable. Utilisez le point de terminaison HTTP sur le port 3128 avec page.authenticate() pour une configuration fiable.
Dois-je m'authentifier à chaque page ?
Oui — appelez page.authenticate() une fois par page (ou par contexte de navigateur) avant de naviguer. Chaque contexte porte ses propres identifiants.
Un proxy va-t-il m'empêcher d'être détecté comme un bot ?
Non. Un proxy ne change que votre IP. Les systèmes anti-bot inspectent également les empreintes de navigateur et le comportement, donc un proxy est nécessaire mais pas suffisant contre une détection agressive.
Exécutez Chrome sans interface graphique derrière un proxy
Proxies de datacenter authentifiés sur proxy.s4m.online, prêts pour page.authenticate() de Puppeteer. Paiement à l'utilisation, avec une IP dédiée optionnelle pour des connexions stables.
Les gens ont trouvé cette page en recherchant
- configuration de proxy Puppeteer avec authentification
- comment configurer adresse IP
- adresse IP tutoriel
- adresse IP
- wireguard tutoriel
- télécharger authentification de proxy
- fonctionne configuration du proxy
- openvpn
- proxychains : comment chaîner des proxies SOCKS5
- proxy pour le scraping prix
- sessions de proxy tournantes vs collantes
- est proxy pour le scraping sûr
- comment éviter les interdictions d'IP lors du scraping
Vraies phrases de recherche auxquelles cette page répond — les liens ouvrent la page qui les couvre en profondeur.