Kako postaviti autentifikovani proxy u Puppeteeru (Node.js)
Updated:
Puppeteer upravlja Chromeom i Chromiumom putem DevTools protokola (CDP), pružajući izvorni await page.authenticate({ username, password }) API za HTTP 407 proxy autentifikaciju. Uparivanje --proxy-server=http://ip:port sa page.authenticate() omogućava vašim Node.js scraperima usmjeravanje saobraćaja kroz VinaProxy statičke proxyje bez ikakvih eksternih ekstenzija za preglednik.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP40.000 ₫
- 5+ IP-ova35.000 ₫
- 10+ IP-ova25.000 ₫
- 20+ IP-ova25.000 ₫
- 50+ IP-ova25.000 ₫
- 100+ IP-ova25.000 ₫
- 200+ IP-ova25.000 ₫
- 500+ IP-ova25.000 ₫
- 1000+ IP-ova22.000 ₫
- 2000+ IP-ova20.000 ₫
- 1 IP40.000 ₫
- 5+ IP-ova35.000 ₫
- 10+ IP-ova25.000 ₫
- 20+ IP-ova25.000 ₫
- 50+ IP-ova25.000 ₫
- 100+ IP-ova25.000 ₫
- 200+ IP-ova25.000 ₫
- 500+ IP-ova25.000 ₫
- 1000+ IP-ova22.000 ₫
- 2000+ IP-ova20.000 ₫
Konfiguracija proxyja u Puppeteeru u dva koraka
Nikada nemojte ugrađivati user:pass@ unutar --proxy-server argumenta pri pokretanju. Umjesto toga, proslijedite host i port pri pokretanju i autentifikujte se na instanci Page:
| Korak | Puppeteer kod | Zašto je važno |
|---|---|---|
| 1. Pokrenite Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Usmjerava mrežni socket Chromiuma na vaš VinaProxy proxy |
| 2. Autentifikujte stranicu | await page.authenticate({ username, password }) | Pruža CDP pristupne podatke za HTTP 407 zahtjeve |
| 3. Navigirajte | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Učitava ciljni URL kroz autentifikovani tunel |
Rotiranje više proxyja kroz kartice pomoću proxy-chain
- Imajte na umu da je
page.authenticate()vezan za pojedinačnuPagekarticu — pozovite ga na svakoj novoj kartici koju vratibrowser.newPage() - Da biste koristili različite proxyje kroz anonimne (incognito) kontekste unutar jednog Chromium procesa, omotajte svaki
http://user:pass@ip:portURL pomoćuproxy-chainnpm paketa (anonymizeProxy()) i proslijediteproxyServerubrowser.createBrowserContext({ proxyServer }) - Kompatibilno sa
puppeteer-extraipuppeteer-extra-plugin-stealth
Korak po korak
- 1
Proslijedite --proxy-server=http://ip:port u puppeteer.launch()
Pokrenite preglednik pomoću
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Pozovite await page.authenticate() na novoj stranici
Otvorite karticu pomoću
const page = await browser.newPage();i pozoviteawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Testirajte izlaznu IP adresu
Pokrenite
await page.goto('https://vinaproxy.com/api/my-ip');i pregledajte vraćeni JSON. - 4
Očistite procese preglednika
Pozovite
await browser.close();kada se zadatak završi.
Često postavljana pitanja
Zašto Puppeteer javlja grešku `ERR_NO_SUPPORTED_PROXIES`?
Ta greška se javlja ako uključite user:pass@ unutar --proxy-server=http://user:pass@ip:port. Ostavite --proxy-server=http://ip:port čistim i proslijedite pristupne podatke putem await page.authenticate({ username, password }).
Zašto je druga kartica otvorena pomoću `browser.newPage()` pala s greškom HTTP 407?
page.authenticate() se primjenjuje po kartici. Pozovite await secondPage.authenticate({ username, password }) prije navigacije na bilo kojoj novootvorenoj kartici.
Da li su VinaProxy proxyji neograničeni za headless Chrome scraping?
Da. Svi Dedicated IPv4 i Static ISP paketi uključuju neograničen mjesečni protok.
Unaprijedite svoju Node.js Puppeteer flotu statičkim IP adresama
Trenutno dostupni neograničeni Dedicated IPv4 i Static ISP proxyji u 7 zemalja.
Kupite Puppeteer proxyje