- Хост
- gw.prokso.com
- Порт
- 823 HTTP · 824 SOCKS5 — новий IP на кожен запит · 10000–20000 фіксований IP (sticky-сесія), HTTP(S) і SOCKS5
- Логін і пароль
- у кабінеті, на сторінці плану
Готові рядки у потрібному форматі генерує кабінет: оберіть країну, тип IP і протокол.
- Хост — gw.prokso.com, порти 823 (HTTP), 824 (SOCKS5), 10000–20000 (фіксований IP, HTTP або SOCKS5)
- Логін і пароль — у кабінеті на сторінці плану
- Перевіряйте IP у відповіді самого запиту через проксі: сторінка «Мій IP» у браузері ваш скрипт не перевіряє
Покрокова інструкція, як підключити проксі Prokso в Puppeteer. Займе кілька хвилин.
Крок 1. Візьміть дані проксі в особистому кабінеті
Відкрийте план і скопіюйте хост gw.prokso.com, порт, логін і пароль. Порт 823 — HTTP, 824 — SOCKS5 (обидва дають новий IP на кожен запит); порти 10000–20000 — фіксований IP (sticky-сесія) до 120 хвилин, працюють і як HTTP, і як SOCKS5 (кожен порт — окрема адреса). Країну задають у логіні: логін__cr.ua.

Крок 2. Передайте проксі при запуску
Chromium у Puppeteer бере проксі з аргументу --proxy-server. Вкажіть тільки хост і порт — без логіна.
Крок 3. Авторизуйтеся на сторінці
Логін і пароль передайте через page.authenticate() до першого переходу. Приклад нижче відкриє сторінку й покаже IP проксі.
import puppeteer from "puppeteer";
const browser = await puppeteer.launch({ args: ["--proxy-server=http://gw.prokso.com:823"] });
const page = await browser.newPage();
await page.authenticate({ username: "USERNAME", password: "PASSWORD" });
await page.goto("https://api.ipify.org");
console.log(await page.evaluate(() => document.body.innerText));
await browser.close();Збережіть код як check.mjs і запустіть node check.mjs.
Крок 4. Один IP на сесію
Для роботи з акаунтами запускайте кожен браузер на своєму фіксованому порту 10000–20000: так cookies і IP не змішаються.
Крок 5. Перевірте IP у запущеному браузері
Приклад із кроку 3 відкриває https://api.ipify.org у браузері Puppeteer і друкує в консоль IP, який бачить сайт, — він має відрізнятися від вашого. Можна відкрити і https://prokso.com/tools/my-ip через page.goto(): там видно ще й країну. Ваш звичайний Chrome іде без проксі й покаже вашу адресу.

Як скоротити витрату трафіку
Браузер завантажує все: картинки, шрифти, відео, рекламу. Для збирання даних це зайве. Перехоплення запитів дає змогу скасувати те, що не потрібне:
await page.setRequestInterception(true);
page.on("request", (req) => {
// skip heavy resources: they are not needed for data collection
const skip = ["image", "media", "font"].includes(req.resourceType());
skip ? req.abort() : req.continue();
});На сторінках із великою кількістю картинок це скорочує обсяг у кілька разів. Стилі краще не блокувати: без них частина сайтів малює сторінку інакше, і потрібні елементи можуть не з'явитися.
Окремий IP для кожного браузера
Аргумент --proxy-server задається під час запуску й діє на весь браузер. Змінити проксі в запущеному браузері не можна. Щоб отримати інший IP, запустіть ще один браузер з іншим фіксованим портом або перезапустіть поточний.
Для акаунтів додайте до проксі окрему папку профілю через userDataDir: тоді кожен акаунт має свої cookie і свій IP.
Якщо сторінка не відкривається
- net::ERR_PROXY_CONNECTION_FAILED. Браузер не достукався до проксі: перевірте хост і порт в аргументі запуску.
- net::ERR_TUNNEL_CONNECTION_FAILED. Проксі відповів відмовою: неправильні логін і пароль або закінчився трафік.
- net::ERR_INVALID_AUTH_CREDENTIALS.
page.authenticate()викликано після переходу або з одруківкою. Викликайте його до першогоpage.goto(). - Тайм-аут навігації. Через резидентські адреси сторінки завантажуються довше. Збільште тайм-аут у
page.goto().
Розбір перших двох помилок — на сторінках ERR_PROXY_CONNECTION_FAILED і ERR_TUNNEL_CONNECTION_FAILED.
Питання й відповіді
Чи потрібно викликати page.authenticate() для кожної вкладки?
Так. Авторизація задається для сторінки, тому викликайте її для кожної нової вкладки до переходу.
Чи можна обійтися без логіна й пароля?
Так. Додайте IP комп'ютера або сервера в блок «Доступ за IP без пароля» на сторінці плану — тоді <code>page.authenticate()</code> не потрібен.
Чи працює проксі в headless-режимі?
Так, однаково в обох режимах.