Kaip nustatyti autentifikuotą proxy Puppeteer (Node.js)
Updated:
Puppeteer valdo Chrome ir Chromium per DevTools Protocol (CDP) bei suteikia integruotą await page.authenticate({ username, password }) API, skirtą HTTP 407 proxy autentifikavimui. Sujungus --proxy-server=http://ip:port su page.authenticate(), jūsų Node.js duomenų rinktuvai gali nukreipti srautą per VinaProxy statinius proxy be jokių išorinių naršyklės plėtinių.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP40 000 VND
- Nuo 5 IP35 000 VND
- Nuo 10 IP25 000 VND
- Nuo 20 IP25 000 VND
- Nuo 50 IP25 000 VND
- Nuo 100 IP25 000 VND
- Nuo 200 IP25 000 VND
- Nuo 500 IP25 000 VND
- Nuo 1000 IP22 000 VND
- Nuo 2000 IP20 000 VND
- 1 IP40 000 VND
- Nuo 5 IP35 000 VND
- Nuo 10 IP25 000 VND
- Nuo 20 IP25 000 VND
- Nuo 50 IP25 000 VND
- Nuo 100 IP25 000 VND
- Nuo 200 IP25 000 VND
- Nuo 500 IP25 000 VND
- Nuo 1000 IP22 000 VND
- Nuo 2000 IP20 000 VND
Dviejų žingsnių proxy konfigūravimas Puppeteer
Niekada neįterpkite user:pass@ į paleidimo parametrą --proxy-server. Vietoj to paleidžiant perduokite serverio adresą bei prievadą ir autentifikuokite Page egzempliorių:
| Žingsnis | Puppeteer kodas | Kodėl tai svarbu |
|---|---|---|
| 1. Paleiskite Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Nukreipia Chromium tinklo lizdą į jūsų VinaProxy proxy |
| 2. Autentifikuokite puslapį | await page.authenticate({ username, password }) | Pateikia CDP prisijungimo duomenis HTTP 407 užklausoms |
| 3. Naršykite | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Užkrauna tikslinį URL per autentifikuotą tunelį |
Kelių proxy rotavimas tarp kortelių naudojant proxy-chain
- Atminkite, kad
page.authenticate()taikomas atskirai kiekvienaiPagekortelei – iškvieskite jį kiekvienai naujai kortelei, gautai išbrowser.newPage() - Norėdami naudoti skirtingus proxy atskiruose inkognito kontekstuose viename Chromium procese, apgaubkite kiekvieną
http://user:pass@ip:portURL suproxy-chainnpm paketu (anonymizeProxy()) ir perduokiteproxyServerįbrowser.createBrowserContext({ proxyServer }) - Suderinama su
puppeteer-extrairpuppeteer-extra-plugin-stealth
Žingsnis po žingsnio
- 1
Perduokite --proxy-server=http://ip:port į puppeteer.launch()
Paleiskite naršyklę su
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Iškvieskite await page.authenticate() naujame puslapyje
Atidarykite kortelę su
const page = await browser.newPage();ir iškvieskiteawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Patikrinkite išorinio IP adresą
Paleiskite
await page.goto('https://vinaproxy.com/api/my-ip');ir patikrinkite gautą JSON. - 4
Išvalykite naršyklės procesus
Užbaigę darbą iškvieskite
await browser.close();.
Dažnai užduodami klausimai
Kodėl Puppeteer pateikia klaidą `ERR_NO_SUPPORTED_PROXIES`?
Ši klaida įvyksta, jei įtraukiate user:pass@ į --proxy-server=http://user:pass@ip:port. Palikite --proxy-server=http://ip:port švarų ir perduokite prisijungimo duomenis per await page.authenticate({ username, password }).
Kodėl antroji kortelė, atidaryta su `browser.newPage()`, grąžino HTTP 407 klaidą?
page.authenticate() galioja kiekvienai kortelei atskirai. Prieš naršydami bet kurioje naujai atidarytoje kortelėje, iškvieskite await secondPage.authenticate({ username, password }).
Ar VinaProxy proxy srautas yra neribojamas headless Chrome duomenų rinkimui?
Taip. Visi Dedicated IPv4 ir Static ISP planai apima neribotą mėnesinį pralaidumą.
Suteikite savo Node.js Puppeteer procesams statinius IP
Akimirksniu paruošti neriboti Dedicated IPv4 ir Static ISP proxy 7 šalyse.
Pirkti Puppeteer proxy