Zo stel je een geauthenticeerde proxy in in Puppeteer (Node.js)
Updated:
Puppeteer bestuurt Chrome en Chromium via het DevTools Protocol (CDP) en biedt een ingebouwde await page.authenticate({ username, password })-API voor HTTP 407-proxy-authenticatie. Door --proxy-server=http://ip:port te combineren met page.authenticate() kunnen je Node.js-scrapers via de statische proxy's van VinaProxy routeren, zonder externe browserextensies.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP₫ 40.000
- 5+ IP's₫ 35.000
- 10+ IP's₫ 25.000
- 20+ IP's₫ 25.000
- 50+ IP's₫ 25.000
- 100+ IP's₫ 25.000
- 200+ IP's₫ 25.000
- 500+ IP's₫ 25.000
- 1000+ IP's₫ 22.000
- 2000+ IP's₫ 20.000
- 1 IP₫ 40.000
- 5+ IP's₫ 35.000
- 10+ IP's₫ 25.000
- 20+ IP's₫ 25.000
- 50+ IP's₫ 25.000
- 100+ IP's₫ 25.000
- 200+ IP's₫ 25.000
- 500+ IP's₫ 25.000
- 1000+ IP's₫ 22.000
- 2000+ IP's₫ 20.000
Proxy-configuratie in twee stappen in Puppeteer
Neem user:pass@ nooit op in het opstartargument --proxy-server. Geef in plaats daarvan de host en poort mee bij het opstarten en authenticeer op de Page-instantie:
| Stap | Puppeteer-code | Waarom dit belangrijk is |
|---|---|---|
| 1. Chromium opstarten | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Verbindt de netwerksocket van Chromium met je VinaProxy-proxy |
| 2. Pagina authenticeren | await page.authenticate({ username, password }) | Levert CDP-inloggegevens voor HTTP 407-authenticatieverzoeken |
| 3. Navigeren | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Laadt de doel-URL via de geauthenticeerde tunnel |
Meerdere proxy's over tabbladen roteren met proxy-chain
- Houd er rekening mee dat
page.authenticate()perPage-tabblad geldt: roep dit aan op elk nieuw tabblad dat doorbrowser.newPage()wordt geretourneerd - Om verschillende proxy's te gebruiken in incognito-contexten binnen één Chromium-proces, wrap je elke
http://user:pass@ip:port-URL met hetproxy-chainnpm-pakket (anonymizeProxy()) en geef jeproxyServerdoor aanbrowser.createBrowserContext({ proxyServer }) - Compatibel met
puppeteer-extraenpuppeteer-extra-plugin-stealth
Stappenplan
- 1
Geef --proxy-server=http://ip:port door aan puppeteer.launch()
Start de browser op met
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Roep await page.authenticate() aan op de nieuwe pagina
Open een tabblad met
const page = await browser.newPage();en roepawait page.authenticate({ username: 'USER', password: 'PASS' });aan. - 3
Test het uitgaande IP-adres
Voer
await page.goto('https://vinaproxy.com/api/my-ip');uit en inspecteer de geretourneerde JSON. - 4
Sluit browserprocessen netjes af
Roep
await browser.close();aan zodra de taak is voltooid.
Veelgestelde vragen
Waarom geeft Puppeteer de foutmelding `ERR_NO_SUPPORTED_PROXIES`?
Deze fout treedt op als je user:pass@ opneemt in --proxy-server=http://user:pass@ip:port. Houd --proxy-server=http://ip:port schoon en geef inloggegevens door via await page.authenticate({ username, password }).
Waarom mislukt een tweede tabblad geopend met `browser.newPage()` met HTTP 407?
page.authenticate() geldt per tabblad. Roep await secondPage.authenticate({ username, password }) aan voordat je navigeert op een nieuw geopend tabblad.
Zijn de proxy's van VinaProxy onbeperkt voor headless Chrome-scraping?
Ja. Alle Dedicated IPv4- en Static ISP-pakketten bevatten onbeperkte maandelijkse bandbreedte.
Versterk je Node.js Puppeteer-vloot met statische IP's
Directe, onbeperkte Dedicated IPv4- en Static ISP-proxy's in 7 landen.
Puppeteer-proxy's kopen