Come configurare un proxy autenticato in Puppeteer (Node.js)
Aggiornato:
Puppeteer gestisce Chrome e Chromium mediante il DevTools Protocol (CDP), mettendo a disposizione l'API nativa await page.authenticate({ username, password }) per gestire l'autenticazione HTTP 407. Combinando l'argomento di avvio --proxy-server=http://ip:port con page.authenticate(), i tuoi script Node.js possono instradare il traffico sui proxy statici di VinaProxy senza installare estensioni browser aggiuntive.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 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 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
Configurazione proxy in due passaggi in Puppeteer
Non inserire mai user:pass@ all'interno dell'argomento di avvio --proxy-server. Specifica host e porta all'avvio ed esegui l'autenticazione sull'istanza Page:
| Passaggio | Codice Puppeteer | Motivazione tecnica |
|---|---|---|
| 1. Avvia Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Incanala il socket di rete di Chromium verso il tuo proxy VinaProxy |
| 2. Autentica la pagina | await page.authenticate({ username, password }) | Invia le credenziali via CDP per soddisfare la richiesta HTTP 407 |
| 3. Navigazione | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Carica la pagina web desiderata attraverso il tunnel proxy autenticato |
Rotazione di proxy multipli tra schede con proxy-chain
- Ricorda che
page.authenticate()è limitato alla singola schedaPage: invocalo su ciascuna nuova scheda creata dabrowser.newPage() - Per applicare proxy distinti in contesti in incognito all'interno dello stesso processo Chromium, incapsula ogni URL
http://user:pass@ip:portcon il pacchetto npmproxy-chain(anonymizeProxy()) e fornisci il risultato abrowser.createBrowserContext({ proxyServer }) - Pienamente compatibile con
puppeteer-extrae il pluginpuppeteer-extra-plugin-stealth
Passo dopo passo
- 1
Passa --proxy-server=http://ip:port a puppeteer.launch()
Inizializza il browser con
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Invoca await page.authenticate() nella nuova scheda
Crea una scheda con
const page = await browser.newPage();e chiamaawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Verifica l'IP di uscita
Esegui
await page.goto('https://vinaproxy.com/api/my-ip');e controlla la risposta JSON. - 4
Chiudi i processi del browser
Al termine dell'attività, invoca
await browser.close();per ripulire le risorse.
Domande frequenti
Perché Puppeteer genera l'errore ERR_NO_SUPPORTED_PROXIES?
Questo errore si verifica includendo le credenziali nel comando di avvio: --proxy-server=http://user:pass@ip:port. Mantieni unicamente --proxy-server=http://ip:port e fornisci le credenziali tramite await page.authenticate({ username, password }).
Perché una seconda scheda aperta con browser.newPage() fallisce con HTTP 407?
L'autenticazione page.authenticate() ha valenza locale per singola scheda. Su qualsiasi nuova scheda aperta, richiama await secondPage.authenticate({ username, password }) prima di avviare la navigazione.
I proxy VinaProxy hanno vincoli di traffico nello scraping headless con Chrome?
No. Tutti i piani IPv4 dedicati e ISP statici di VinaProxy includono traffico dati illimitato.
Potenzia i tuoi crawler Puppeteer in Node.js con IP statici dedicati
Proxy IPv4 Dedicati e ISP Statici illimitati, ad attivazione istantanea in 7 paesi del mondo.
Acquista proxy Puppeteer