Slik setter du opp en autentisert proxy i Puppeteer (Node.js)
Updated:
Puppeteer styrer Chrome og Chromium via DevTools Protocol (CDP) og tilbyr et innebygd await page.authenticate({ username, password })-API for HTTP 407-proxyautentisering. Ved å kombinere --proxy-server=http://ip:port med page.authenticate() kan Node.js-skraperne dine rutes gjennom statiske proxyer fra VinaProxy uten eksterne nettleserutvidelser.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP40 000 VND
- 5+ IP-er35 000 VND
- 10+ IP-er25 000 VND
- 20+ IP-er25 000 VND
- 50+ IP-er25 000 VND
- 100+ IP-er25 000 VND
- 200+ IP-er25 000 VND
- 500+ IP-er25 000 VND
- 1000+ IP-er22 000 VND
- 2000+ IP-er20 000 VND
- 1 IP40 000 VND
- 5+ IP-er35 000 VND
- 10+ IP-er25 000 VND
- 20+ IP-er25 000 VND
- 50+ IP-er25 000 VND
- 100+ IP-er25 000 VND
- 200+ IP-er25 000 VND
- 500+ IP-er25 000 VND
- 1000+ IP-er22 000 VND
- 2000+ IP-er20 000 VND
To-trinns proxykonfigurasjon i Puppeteer
Bygg aldri inn user:pass@ i oppstartsargumentet --proxy-server. Send heller inn vert og port ved oppstart, og autentiser på Page-forekomsten:
| Trinn | Puppeteer-kode | Hvorfor det er viktig |
|---|---|---|
| 1. Start Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Peker Chromium sin nettverkssokkel mot proxyen din fra VinaProxy |
| 2. Autentiser siden | await page.authenticate({ username, password }) | Leverer CDP-påloggingsinformasjon for HTTP 407-utfordringer |
| 3. Naviger | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Laster mål-URL-en gjennom den autentiserte tunnelen |
Roter flere proxyer på tvers av faner med proxy-chain
- Husk at
page.authenticate()gjelder perPage-fane – kall den på hver nye fane som returneres avbrowser.newPage() - For å bruke ulike proxyer på tvers av inkognitokontekster i én enkelt Chromium-prosess, pakker du hver
http://user:pass@ip:port-URL inn med npm-pakkenproxy-chain(anonymizeProxy()) og senderproxyServertilbrowser.createBrowserContext({ proxyServer }) - Kompatibel med
puppeteer-extraogpuppeteer-extra-plugin-stealth
Trinn for trinn
- 1
Send --proxy-server=http://ip:port til puppeteer.launch()
Start nettleseren med
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Kall await page.authenticate() på den nye siden
Åpne en fane med
const page = await browser.newPage();og kallawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Test utgående IP-adresse
Kjør
await page.goto('https://vinaproxy.com/api/my-ip');og inspiser returnert JSON. - 4
Rydd opp i nettleserprosesser
Kall
await browser.close();når jobben er fullført.
Ofte stilte spørsmål
Hvorfor kaster Puppeteer `ERR_NO_SUPPORTED_PROXIES`?
Denne feilen oppstår hvis du inkluderer user:pass@ i --proxy-server=http://user:pass@ip:port. Hold --proxy-server=http://ip:port ren og send inn påloggingsinformasjon via await page.authenticate({ username, password }).
Hvorfor feilet en ny fane åpnet med `browser.newPage()` med HTTP 407?
page.authenticate() gjelder per fane. Kall await secondPage.authenticate({ username, password }) før du navigerer på en nyåpnet fane.
Har proxyer fra VinaProxy ubegrenset datatrafikk for headless Chrome-skraping?
Ja. Alle abonnementer for Dedicated IPv4 og Static ISP inkluderer ubegrenset månedlig båndbredde.
Gi Node.js Puppeteer-oppsettet ditt kraft med statiske IP-er
Umiddelbare Dedicated IPv4- og Static ISP-proxyer uten datagrenser i 7 land.
Kjøp Puppeteer-proxyer