Kako postaviti autentificirani proxy u Puppeteeru (Node.js)
Updated:
Puppeteer upravlja preglednicima Chrome i Chromium putem protokola DevTools Protocol (CDP), nudeći izvorni API await page.authenticate({ username, password }) za HTTP 407 proxy autentifikaciju. Kombiniranjem argumenta --proxy-server=http://ip:port s metodom page.authenticate() vaši Node.js scraperi usmjeravaju promet kroz statičke proxyje pružatelja VinaProxy bez potrebe za vanjskim proširenjima preglednika.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP40.000 VND
- 5+ IP-ova35.000 VND
- 10+ IP-ova25.000 VND
- 20+ IP-ova25.000 VND
- 50+ IP-ova25.000 VND
- 100+ IP-ova25.000 VND
- 200+ IP-ova25.000 VND
- 500+ IP-ova25.000 VND
- 1000+ IP-ova22.000 VND
- 2000+ IP-ova20.000 VND
- 1 IP40.000 VND
- 5+ IP-ova35.000 VND
- 10+ IP-ova25.000 VND
- 20+ IP-ova25.000 VND
- 50+ IP-ova25.000 VND
- 100+ IP-ova25.000 VND
- 200+ IP-ova25.000 VND
- 500+ IP-ova25.000 VND
- 1000+ IP-ova22.000 VND
- 2000+ IP-ova20.000 VND
Konfiguracija proxyja u Puppeteeru u dva koraka
Nikada nemojte ugrađivati user:pass@ unutar argumenta pokretanja --proxy-server. Umjesto toga, proslijedite host i port pri pokretanju te autentificirajte instancu objekta Page:
| Korak | Puppeteer kôd | Zašto je to važno |
|---|---|---|
| 1. Pokrenite Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Usmjerava mrežni socket Chromiuma na vaš VinaProxy proxy |
| 2. Autentificirajte stranicu | await page.authenticate({ username, password }) | Šalje CDP vjerodajnice za HTTP 407 izazove autentifikacije |
| 3. Učitajte stranicu | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Učitava ciljani URL kroz autentificirani tunel |
Izmjena više proxyja po karticama pomoću paketa proxy-chain
- Imajte na umu da je
page.authenticate()vezan uz pojedinačnuPagekarticu — pozovite ga na svakoj novoj kartici koju vratibrowser.newPage() - Za korištenje različitih proxyja kroz anonimne (incognito) kontekste unutar jednog Chromium procesa, omotajte svaki
http://user:pass@ip:portURL pomoću npm paketaproxy-chain(anonymizeProxy()) i proslijediteproxyServermetodibrowser.createBrowserContext({ proxyServer }) - Kompatibilno s paketima
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
Provjerite izlaznu IP adresu
Pokrenite
await page.goto('https://vinaproxy.com/api/my-ip');i pregledajte vraćeni JSON odgovor. - 4
Zatvorite procese preglednika
Pozovite
await browser.close();nakon što zadatak završi.
Često postavljana pitanja
Zašto Puppeteer javlja grešku `ERR_NO_SUPPORTED_PROXIES`?
Ta se pogreška javlja ako uključite user:pass@ unutar --proxy-server=http://user:pass@ip:port. Ostavite čist zapis --proxy-server=http://ip:port, a vjerodajnice proslijedite putem await page.authenticate({ username, password }).
Zašto je druga kartica otvorena s `browser.newPage()` javila pogrešku HTTP 407?
page.authenticate() vrijedi samo za pojedinačnu karticu. Pozovite await secondPage.authenticate({ username, password }) prije navigacije na svakoj novootvorenoj kartici.
Imaju li VinaProxy proxyji neograničen promet za scraping u headless načinu rada preglednika Chrome?
Da. Svi paketi Dedicated IPv4 i Static ISP uključuju neograničen mjesečni podatkovni promet.
Opremite svoju Node.js Puppeteer infrastrukturu statičkim IP adresama
Trenutačno dostupni neograničeni Dedicated IPv4 i Static ISP proxyji u 7 zemalja.
Kupite Puppeteer proxyje