Så konfigurerar du en autentiserad proxy i Puppeteer (Node.js)
Updated:
Puppeteer styr Chrome och Chromium via DevTools Protocol (CDP) och erbjuder ett inbyggt API via await page.authenticate({ username, password }) för HTTP 407-proxyautentisering. Genom att kombinera --proxy-server=http://ip:port med page.authenticate() kan dina Node.js-scrapers dirigera trafik genom statiska VinaProxy-proxys helt utan externa webbläsartillägg.
--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
Proxykonfiguration i två steg i Puppeteer
Bädda aldrig in user:pass@ i startargumentet --proxy-server. Ange istället värd och port vid start och autentisera på instansen av Page:
| Steg | Puppeteer-kod | Varför det är viktigt |
|---|---|---|
| 1. Starta Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Riktar Chromiums nätverksanslutning mot din VinaProxy-proxy |
| 2. Autentisera Page | await page.authenticate({ username, password }) | Tillhandahåller CDP-inloggningsuppgifter för HTTP 407-utmaningar |
| 3. Navigera | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Laddar mål-URL:en genom den autentiserade tunneln |
Rotera flera proxys mellan flikar med proxy-chain
- Kom ihåg att
page.authenticate()är isolerad perPage-flik – anropa den på varje ny flik som returneras avbrowser.newPage() - För att använda olika proxys i inkognitokontexter inom en och samma Chromium-process omger du varje
http://user:pass@ip:port-URL med npm-paketetproxy-chain(anonymizeProxy()) och skickarproxyServertillbrowser.createBrowserContext({ proxyServer }) - Kompatibel med
puppeteer-extraochpuppeteer-extra-plugin-stealth
Steg för steg
- 1
Skicka --proxy-server=http://ip:port till puppeteer.launch()
Starta webbläsaren med
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Anropa await page.authenticate() på den nya sidan
Öppna en flik med
const page = await browser.newPage();och anropaawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Testa utgående IP-adress
Kör
await page.goto('https://vinaproxy.com/api/my-ip');och granska det returnerade JSON-svaret. - 4
Rensa webbläsarprocesser
Anropa
await browser.close();när jobbet är klart.
Vanliga frågor
Varför ger Puppeteer felmeddelandet `ERR_NO_SUPPORTED_PROXIES`?
Det felet uppstår om du inkluderar user:pass@ inuti --proxy-server=http://user:pass@ip:port. Håll --proxy-server=http://ip:port ren och skicka inloggningsuppgifterna via await page.authenticate({ username, password }).
Varför misslyckades en andra flik som öppnades med `browser.newPage()` med HTTP 407?
page.authenticate() gäller per flik. Anropa await secondPage.authenticate({ username, password }) innan du navigerar på en nyligen öppnad flik.
Erbjuder VinaProxy-proxys obegränsad data för scraping med headless Chrome?
Ja. Alla Dedicated IPv4- och Static ISP-abonnemang inkluderar obegränsad månatlig bandbredd.
Ge din Node.js Puppeteer-flotta kraft med statiska IP-adresser
Omedelbara Dedicated IPv4- och Static ISP-proxys med obegränsad data i 7 länder.
Köp Puppeteer-proxys