Налаштування проксі в Apify

Власні проксі в Apify: розділ Proxy and browser configuration в акторі, параметр proxyUrls у коді й вибір порту для ротації чи сесії.

Оновлено · Редакція Prokso

Дані для підключення
Хост
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 в Apify. Займе кілька хвилин.

Крок 1. Візьміть дані проксі в особистому кабінеті

Відкрийте план і скопіюйте хост gw.prokso.com, порт, логін і пароль. Порт 823 — HTTP, 824 — SOCKS5 (обидва дають новий IP на кожен запит); порти 10000–20000 — фіксований IP (sticky-сесія) до 120 хвилин, працюють і як HTTP, і як SOCKS5 (кожен порт — окрема адреса). Країну задають у логіні: логін__cr.ua.

Блок «Доступ» на сторінці плану: хост, порти, логін і пароль для рядка проксі
Блок «Доступ» на сторінці плану: хост, порти, логін і пароль для рядка проксі

Крок 2. Готовий актор: вкажіть власні проксі

Відкрийте потрібний актор в Apify Console, перейдіть на вкладку Input і знайдіть розділ Proxy and browser configuration. Оберіть варіант із власними проксі й вставте адресу у форматі http://ЛОГІН:ПАРОЛЬ@gw.prokso.com:823.

Крок 3. Власний код: передайте proxyUrls

У своєму акторі створіть конфігурацію проксі через Actor.createProxyConfiguration з параметром proxyUrls і передайте її краулеру.

import { Actor } from "apify";
import { HttpCrawler } from "crawlee";

await Actor.init();

const proxyConfiguration = await Actor.createProxyConfiguration({
    proxyUrls: ["http://ЛОГІН:ПАРОЛЬ@gw.prokso.com:823"],
});

const crawler = new HttpCrawler({
    proxyConfiguration,
    additionalMimeTypes: ["application/json"],
    async requestHandler({ json }) {
        console.log(json);
    },
});

await crawler.run(["https://api.ipify.org?format=json"]);
await Actor.exit();

Крок 4. Оберіть порт під завдання

Порт 823 дає нову адресу на кожен запит — так запити розподіляються між багатьма IP. Якщо краулеру потрібна сесія з однією адресою, додайте до proxyUrls кілька адрес із фіксованими портами 10000–20000: Apify перебиратиме їх по черзі.

Крок 5. Перевірте в журналі запуску

Запустіть актор: приклад звертається до https://api.ipify.org і виводить у журнал (Log) IP, який бачить сайт. Це має бути адреса проксі. Якщо в журналі помилка з'єднання з проксі, перевірте логін, пароль і порт.

Актори працюють у хмарі

Актор запускається на серверах Apify, а не на вашому комп'ютері. Тому доступ за IP без пароля тут не підходить: адреси хмари вам невідомі та змінюються. Використовуйте адресу проксі з логіном і паролем.

З тієї самої причини перевіряти IP потрібно в журналі запуску, а не у своєму браузері.

Сесії та ротація у Crawlee

Із портом 823 кожен запит іде з нового IP — окремий пул сесій для ротації не потрібен. Якщо сайт вимагає, щоб серія запитів ішла з однієї адреси, передайте в proxyUrls кілька адрес із фіксованими портами: Crawlee закріпить адресу за сесією та змінить її, коли сесію буде позначено як невдалу.

Кількість повторів обмежте параметром maxRequestRetries: кожен повтор — це ще один запит і ще трафік.

Як витрачати менше трафіку

Вибирайте найлегший краулер, який дає раду завданню. HttpCrawler і CheerioCrawler завантажують лише HTML. Браузерні краулери завантажують сторінку цілком і витрачають у рази більше — залиште їх для сайтів, які не працюють без JavaScript. Оцінити обсяг допоможе калькулятор трафіку.

Питання й відповіді

Чи потрібна підписка на Apify Proxy?

Ні. Власні проксі вказуються замість вбудованих проксі Apify; ви платите лише за трафік свого плану Prokso.

Який тип проксі обрати для Apify?

Для сайтів із простим захистом вистачає серверних проксі — вони найдешевші. Якщо сайт блокує адреси дата-центрів, візьміть резидентські.

Де зберігати логін і пароль проксі?

Не в коді. Використовуйте секретні поля введення актора або змінні середовища, позначені як секретні.

Актор відповідає 407. Що перевірити?

Логін і пароль в адресі проксі, кодування спецсимволів і залишок трафіку на плані.