Како да поставите автентицирано прокси во Puppeteer (Node.js)
Updated:
Puppeteer ги контролира Chrome и Chromium преку DevTools Protocol (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+ 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
Конфигурација на прокси во два чекори во 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() - За да користите различни проксија низ инкогнито контексти во рамките на еден Chromium процес, завиткајте го секој
http://user:pass@ip:portURL со npm пакетотproxy-chain(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 проксија