Hitelesített proxy beállítása Puppeteerben (Node.js)
Updated:
A Puppeteer a DevTools Protocolon (CDP) keresztül vezérli a Chrome és Chromium böngészőket, és natív await page.authenticate({ username, password }) API-t biztosít a HTTP 407 proxyhitelesítéshez. A --proxy-server=http://ip:port és a page.authenticate() együttes használatával a Node.js scraperek külső böngészőbővítmények nélkül irányíthatók át a VinaProxy statikus proxyjain.
--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
Kétlépéses proxykonfiguráció Puppeteerben
Soha ne ágyazza be a user:pass@ adatokat a --proxy-server indítási argumentumba. Ehelyett adja meg a gazdagépet és a portot indításkor, a hitelesítést pedig a Page példányon végezze el:
| Lépés | Puppeteer-kód | Miért fontos? |
|---|---|---|
| 1. Chromium indítása | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | A Chromium hálózati socketjét a VinaProxy proxyra irányítja |
| 2. Oldal hitelesítése | await page.authenticate({ username, password }) | CDP hitelesítési adatokat biztosít a HTTP 407 kihívásokhoz |
| 3. Navigáció | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Betölti a cél URL-t a hitelesített alagúton keresztül |
Több proxy váltása a lapok között a proxy-chain segítségével
- Ne feledje, hogy a
page.authenticate()laponként (Page) érvényes – hívja meg minden új lapon, amelyet abrowser.newPage()visszaad - Ha egyetlen Chromium-folyamaton belül különböző proxykat szeretne használni az inkognitó-kontextusok között, csomagolja be az egyes
http://user:pass@ip:portURL-eket aproxy-chainnpm-csomaggal (anonymizeProxy()), és adja át aproxyServerparamétert abrowser.createBrowserContext({ proxyServer })hívásnak - Kompatibilis a
puppeteer-extraés apuppeteer-extra-plugin-stealthcsomaggal
Lépésről lépésre
- 1
A --proxy-server=http://ip:port átadása a puppeteer.launch() függvénynek
Indítsa el a böngészőt a következő kóddal:
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Az await page.authenticate() meghívása az új oldalon
Nyisson meg egy lapot a
const page = await browser.newPage();kóddal, majd hívja meg azawait page.authenticate({ username: 'USER', password: 'PASS' });metódust. - 3
A kilépő IP-cím tesztelése
Futtassa az
await page.goto('https://vinaproxy.com/api/my-ip');kódot, és vizsgálja meg a visszakapott JSON-t. - 4
A böngészőfolyamatok leállítása
A feladat befejeztével hívja meg az
await browser.close();függvényt.
Gyakran ismételt kérdések
Miért dob a Puppeteer `ERR_NO_SUPPORTED_PROXIES` hibát?
Ez a hiba akkor fordul elő, ha a user:pass@ adatokat megadja a --proxy-server=http://user:pass@ip:port kapcsolón belül. Hagyja tisztán a --proxy-server=http://ip:port értéket, és adja át a hitelesítési adatokat az await page.authenticate({ username, password }) hívással.
Miért hibásodott meg HTTP 407 hibával a `browser.newPage()` segítségével megnyitott második lap?
A page.authenticate() laponként érvényesül. Hívja meg az await secondPage.authenticate({ username, password }) metódust, mielőtt navigálna bármely újonnan megnyitott lapon.
A VinaProxy proxyk forgalomkorlát nélküliek headless Chrome scrapinghez?
Igen. Minden Dedicated IPv4 és Static ISP csomag korlátlan havi sávszélességet tartalmaz.
Turbózza fel Node.js Puppeteer-flottáját statikus IP-kkel
Azonnali, korlátlan Dedicated IPv4 és Static ISP proxyk 7 országban.
Puppeteer proxyk vásárlása