Sådan opsætter du en autentificeret proxy i Puppeteer (Node.js)
Updated:
Puppeteer styrer Chrome og Chromium via DevTools Protocol (CDP) og tilbyder et indbygget await page.authenticate({ username, password })-API til HTTP 407-proxygodkendelse. Når du kombinerer --proxy-server=http://ip:port med page.authenticate(), kan dine Node.js-scrapers dirigere trafikken gennem statiske proxyer fra VinaProxy helt uden eksterne browserudvidelser.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP40.000 ₫
- 5+ IP'er35.000 ₫
- 10+ IP'er25.000 ₫
- 20+ IP'er25.000 ₫
- 50+ IP'er25.000 ₫
- 100+ IP'er25.000 ₫
- 200+ IP'er25.000 ₫
- 500+ IP'er25.000 ₫
- 1000+ IP'er22.000 ₫
- 2000+ IP'er20.000 ₫
- 1 IP40.000 ₫
- 5+ IP'er35.000 ₫
- 10+ IP'er25.000 ₫
- 20+ IP'er25.000 ₫
- 50+ IP'er25.000 ₫
- 100+ IP'er25.000 ₫
- 200+ IP'er25.000 ₫
- 500+ IP'er25.000 ₫
- 1000+ IP'er22.000 ₫
- 2000+ IP'er20.000 ₫
To-trins proxykonfiguration i Puppeteer
Indsæt aldrig user:pass@ i startargumentet --proxy-server. Angiv i stedet vært og port ved opstart, og godkend på Page-instansen:
| Trin | Puppeteer-kode | Hvorfor det er vigtigt |
|---|---|---|
| 1. Start Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Retter Chromiums netværkssocket mod din VinaProxy-proxy |
| 2. Godkend Page | await page.authenticate({ username, password }) | Leverer CDP-loginoplysninger til HTTP 407-udfordringer |
| 3. Naviger | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Indlæser destinations-URL'en gennem den godkendte tunnel |
Rotation af flere proxyer på tværs af faner med proxy-chain
- Husk, at
page.authenticate()gælder pr.Page-fane – kald den på hver ny fane, der returneres afbrowser.newPage() - Hvis du vil bruge forskellige proxyer på tværs af inkognitokontekster i en enkelt Chromium-proces, kan du pakke hver
http://user:pass@ip:port-URL ind med npm-pakkenproxy-chain(anonymizeProxy()) og videregiveproxyServertilbrowser.createBrowserContext({ proxyServer }) - Kompatibel med
puppeteer-extraogpuppeteer-extra-plugin-stealth
Trin for trin
- 1
Videregiv --proxy-server=http://ip:port til puppeteer.launch()
Start browseren med
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Kald await page.authenticate() på den nye side
Åbn en fane med
const page = await browser.newPage();, og kaldawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Test udgående IP-adresse
Kør
await page.goto('https://vinaproxy.com/api/my-ip');, og undersøg det returnerede JSON. - 4
Luk browserprocesserne
Kald
await browser.close();, når opgaven er færdig.
Ofte stillede spørgsmål
Hvorfor kaster Puppeteer `ERR_NO_SUPPORTED_PROXIES`?
Denne fejl opstår, hvis du inkluderer user:pass@ i --proxy-server=http://user:pass@ip:port. Hold --proxy-server=http://ip:port ren, og videregiv loginoplysninger via await page.authenticate({ username, password }).
Hvorfor mislykkedes en fane nummer to åbnet med `browser.newPage()` med HTTP 407?
page.authenticate() gælder pr. fane. Kald await secondPage.authenticate({ username, password }), før du navigerer på en nyåbnet fane.
Er VinaProxy-proxyer ubegrænsede til headless Chrome-scraping?
Ja. Alle Dedikerede IPv4- og Statiske ISP-abonnementer inkluderer ubegrænset månedlig båndbredde.
Giv dit Node.js Puppeteer-setup ekstra kraft med statiske IP'er
Øjeblikkelige, ubegrænsede Dedikerede IPv4- og Statiske ISP-proxyer i 7 lande.
Køb Puppeteer-proxyer