Како подесити аутентификовани прокси у Puppeteer-у (Node.js)
Updated:
Puppeteer контролише Chrome и Chromium преко DevTools протокола (CDP), пружајући изворни await page.authenticate({ username, password }) API за HTTP 407 аутентификацију проксија. Комбиновање --proxy-server=http://ip:port са page.authenticate() омогућава вашим Node.js алатима за прикупљање података да рутирају саобраћај кроз VinaProxy статичке проксије без икаквих спољних екстензија за прегледач.
--proxy-server=http://ip:port + page.authenticate({ username, password })- 1 IP40.000 VND
- 5+ IP-ја35.000 VND
- 10+ IP-ја25.000 VND
- 20+ IP-ја25.000 VND
- 50+ IP-ја25.000 VND
- 100+ IP-ја25.000 VND
- 200+ IP-ја25.000 VND
- 500+ IP-ја25.000 VND
- 1000+ IP-ја22.000 VND
- 2000+ IP-ја20.000 VND
- 1 IP40.000 VND
- 5+ IP-ја35.000 VND
- 10+ IP-ја25.000 VND
- 20+ IP-ја25.000 VND
- 50+ IP-ја25.000 VND
- 100+ IP-ја25.000 VND
- 200+ IP-ја25.000 VND
- 500+ IP-ја25.000 VND
- 1000+ IP-ја22.000 VND
- 2000+ IP-ја20.000 VND
Конфигурација проксија у два корака у Puppeteer-у
Никада немојте уграђивати user:pass@ унутар аргумента за покретање --proxy-server. Уместо тога, проследите хост и порт приликом покретања и извршите аутентификацију на Page инстанци:
| Корак | Puppeteer кôд | Зашто је важно |
|---|---|---|
| 1. Покрените Chromium | puppeteer.launch({ args: ['--proxy-server=http://ip:port'] }) | Усмерава мрежни сокет Chromium-а на ваш VinaProxy прокси |
| 2. Аутентификујте страницу | await page.authenticate({ username, password }) | Прослеђује CDP акредитиве за HTTP 407 захтеве за аутентификацију |
| 3. Отворите страницу | await page.goto(url, { waitUntil: 'domcontentloaded' }) | Учитава циљни URL кроз аутентификовани тунел |
Ротација више проксија кроз картице помоћу пакета proxy-chain
- Имајте на уму да је
page.authenticate()везан за појединачнуPageкартицу — позовите га за сваку нову картицу коју вратиbrowser.newPage() - Да бисте користили различите проксије кроз incognito контексте унутар једног Chromium процеса, обавијте сваки
http://user:pass@ip:portURL помоћуproxy-chainnpm пакета (anonymizeProxy()) и проследитеproxyServerуbrowser.createBrowserContext({ proxyServer }) - Компатибилно са
puppeteer-extraиpuppeteer-extra-plugin-stealth
Корак по корак
- 1
Проследите --proxy-server=http://ip:port у puppeteer.launch()
Покрените прегледач помоћу
const browser = await puppeteer.launch({ args: ['--proxy-server=http://ip:port'] });. - 2
Позовите await page.authenticate() на новој страници
Отворите картицу помоћу
const page = await browser.newPage();и позовитеawait page.authenticate({ username: 'USER', password: 'PASS' });. - 3
Тестирајте излазну IP адресу
Покрените
await page.goto('https://vinaproxy.com/api/my-ip');и прегледајте враћени JSON. - 4
Затворите процесе прегледача
Позовите
await browser.close();када се посао заврши.
Често постављана питања
Зашто Puppeteer јавља грешку `ERR_NO_SUPPORTED_PROXIES`?
Ова грешка се јавља ако укључите user:pass@ унутар --proxy-server=http://user:pass@ip:port. Задржите --proxy-server=http://ip:port чистим и проследите акредитиве путем await page.authenticate({ username, password }).
Зашто је друга картица отворена помоћу `browser.newPage()` пријавила грешку HTTP 407?
page.authenticate() се примењује појединачно за сваку картицу. Позовите await secondPage.authenticate({ username, password }) пре навигације на било којој новоотвореној картици.
Да ли су VinaProxy проксији неограничени за скрејповање помоћу headless Chrome-а?
Да. Сви Dedicated IPv4 и Static ISP пакети укључују неограничени месечни проток.
Оснажите своју Node.js Puppeteer флоту статичким IP адресама
Инстант неограничени Dedicated IPv4 и Static ISP проксији у 7 земаља.
Купите Puppeteer проксије