Jak nastavit ověřenou proxy v Puppeteer (Node.js)
Updated:
Puppeteer ovládá Chrome a Chromium přes DevTools Protocol (CDP) a nabízí nativní API await page.authenticate({ username, password }) pro ověřování proxy vůči HTTP 407. Kombinace --proxy-server=http://ip:port a page.authenticate() umožňuje vašim scraperům v Node.js směrovat provoz přes statické proxy VinaProxy bez jakýchkoli externích rozšíření prohlížeče.
--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
Dvoukroková konfigurace proxy v Puppeteer
Nikdy nevkládejte user:pass@ přímo do spouštěcího argumentu --proxy-server. Místo toho předejte hostitele a port při spuštění a ověření proveďte na instanci Page:
| Krok | Kód v Puppeteer | Proč na tom záleží |
|---|---|---|
| 1. Spuštění Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Nasměruje síťový soket Chromium na vaši VinaProxy proxy |
| 2. Ověření Page | await page.authenticate({ username, password }) | Předá CDP přihlašovací údaje pro výzvy HTTP 407 |
| 3. Navigace | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Načte cílovou URL přes ověřený tunel |
Rotace více proxy mezi panely pomocí proxy-chain
- Pamatujte, že
page.authenticate()má rozsah platnosti pro jednotlivé panelyPage– volejte jej na každém novém panelu vráceném zbrowser.newPage() - Chcete-li používat různé proxy napříč anonymními kontexty v rámci jednoho procesu Chromium, obalte každou URL
http://user:pass@ip:portpomocí balíčkuproxy-chainz npm (anonymizeProxy()) a předejteproxyServerdobrowser.createBrowserContext({ proxyServer }) - Kompatibilní s
puppeteer-extraapuppeteer-extra-plugin-stealth
Krok za krokem
- 1
Předejte --proxy-server=http://ip:port do puppeteer.launch()
Spusťte prohlížeč pomocí
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Zavolejte await page.authenticate() na novém panelu
Otevřete panel pomocí
const page = await browser.newPage();a zavolejteawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Otestujte výstupní IP adresu
Spusťte
await page.goto('https://vinaproxy.com/api/my-ip');a zkontrolujte vrácený JSON. - 4
Ukončete procesy prohlížeče
Po dokončení úlohy zavolejte
await browser.close();.
Často kladené otázky
Proč Puppeteer vyhazuje chybu `ERR_NO_SUPPORTED_PROXIES`?
K této chybě dochází, pokud vložíte user:pass@ do --proxy-server=http://user:pass@ip:port. Ponechte --proxy-server=http://ip:port čisté a přihlašovací údaje předejte přes await page.authenticate({ username, password }).
Proč druhý panel otevřený pomocí `browser.newPage()` selhal s chybou HTTP 407?
page.authenticate() se vztahuje na každý panel zvlášť. Před navigací v jakémkoli nově otevřeném panelu zavolejte await secondPage.authenticate({ username, password }).
Mají proxy VinaProxy neomezený přenos dat pro scraping v headless Chrome?
Ano. Všechny tarify Dedicated IPv4 a Static ISP zahrnují neomezený měsíční přenos dat.
Dopřejte své flotile Node.js Puppeteer statické IP adresy
Okamžité neomezené proxy Dedicated IPv4 a Static ISP v 7 zemích.
Koupit proxy pro Puppeteer