GeekProxy в Apify

Apify запускает ваши скраперы, они называются Actors, в своём облаке и позволяет каждому запуску нести список своих прокси в привычном виде scheme://user:password@host:port. Платформа перебирает список по кругу или закрепляет URL за сессией. В гайде разбираем поле Custom proxies в консоли, ту же настройку в JSON и в двух SDK, и какой трафик на самом деле выходит через ваш прокси.

Что нужно: активный план GeekProxy и данные прокси из кабинета. Настройка занимает минуты три.

Получить прокси

1 Перед началом

Apify это веб-платформа. Ставить нечего: открываете консоль в браузере, выбираете Actor, например Web Scraper, заполняете его вход и жмёте Start. Бесплатный план стоит $0, даёт $5 кредита в месяц на Store или собственные Actors и не просит карту. На всё, что на этой странице, этого хватает.

  • Прокси записываются как scheme://user:password@host:port, несколько штук через пробел или с новой строки
  • Схема HTTP или SOCKS5. Логин и пароль можно опустить, порт нельзя
  • Доменные имена принимаются: в официальном примере стоит хост с портом 8000
  • Настройка на запуск. Она сохраняется со входом задачи или запуска, а не с аккаунтом
  • Секцию показывают только Actors, у которых во входной схеме описано поле proxy. У Web Scraper оно есть, и его README говорит, что без прокси он не запустится

Что понадобится

Ваши данные доступа
  • Поле Откуда взять
  • Протокол HTTP / SOCKS5
  • Хост IP или имя шлюза из кабинета
  • Порт из кабинета
  • Логин из кабинета
  • Пароль из кабинета

2 Где взять данные прокси

  1. Войдите в кабинет GeekProxy
  2. Откройте план. У планов с оплатой за IP (датацентр, ISP) список адресов, порты, логин и пароль лежат прямо на карточке, а кнопка Export отдаёт весь список текстом
  3. У резидентских и мобильных планов нажмите Options. Панель Proxy Configuration соберёт строку логина со страной, городом и настройками сессии. Готовую строку копируйте из Proxy List
  4. Оставьте план в режиме логина и пароля. Apify работает с облачных адресов, которые меняются от запуска к запуску, белому списку не за что зацепиться

На резидентской панели стоит задержаться на минуту. Ротационный режим даёт строку, где каждое соединение может выйти с другого адреса. Липкий режим даёт строку, которая держит один выход заданное время сессии. И то и другое один URL, а для Apify это список из одной записи.

Apify, Custom proxies и поле Proxy urls
Подписка Residential Flex, панель Proxy Configuration: континент, ASN, ZIP, регион, ОС устройства, тип прокси и TTL сессии, ниже готовая строка curl

3 Что идёт через прокси

Ваш браузер прокси не касается. Консоль, вызовы API, которые стартуют запуски, выгрузка датасетов: всё это трафик между вами и Apify. Прокси использует краулер внутри Actor во время запуска, для запросов к целевому сайту. Headless-браузер или простой HTTP-клиент, правило одно. Путь такой: сервер Apify, потом ваш адрес GeekProxy, потом сайт.

Два следствия. Цель видит адрес выхода прокси и никогда ваш домашний IP, с вашей стороны утекать нечему. А подключается машина из облака Apify, поэтому логин с паролем здесь бьют любой белый список.

4 Custom proxies в консоли

  1. Откройте Actor, например Web Scraper, и перейдите на вкладку Input
  2. Прокрутите вниз и раскройте секцию Proxy and browser configuration
  3. У поля Proxy configuration (optional) переключатель: None, Custom proxies, Automatic proxy, Selected proxies. Нажмите Custom proxies
  4. Появится поле Proxy urls. Вставьте http://LOGIN:PASSWORD@IP:PORT, по одному URL в строке
  5. Запускайте или сохраните вход как task, чтобы использовать повторно

Automatic proxy и Selected proxies это собственный пул Apify с выпадающим списком Proxy country. Не трогайте: они едят кредит Apify, и гайд не про них. None предлагают только Actors, которые умеют работать без прокси.

Консоль Apify, вкладка Input
Форма Input в Apify Console со свернутым разделом Proxy and browser configuration над кнопкой Save & Start.
Консоль Apify, Custom proxies
Настройка прокси в Apify, выбран режим Custom proxies, в поле Proxy urls две ссылки на прокси.

5 JSON и SDK

Поле в консоли это просто форма для JSON-объекта. Переключите вкладку Input в JSON, и та же настройка выглядит так:

"proxyConfiguration": {
  "useApifyProxy": false,
  "proxyUrls": ["http://LOGIN:PASSWORD@IP:PORT"]
}

Ровно это вы и отправляете, когда стартуете запуск через API. В коде собственного Actor JS SDK собирает ротацию из того же списка сам:

const proxyConfiguration = await Actor.createProxyConfiguration({
    proxyUrls: ['http://LOGIN:PASSWORD@IP:PORT'],
});
const proxyUrl = await proxyConfiguration.newUrl('session-1');

И Python SDK, куда объект из консоли можно передать как есть:

proxy_configuration = await Actor.create_proxy_configuration(
    proxy_urls=['http://LOGIN:PASSWORD@IP:PORT'],
)
proxy_url = await proxy_configuration.new_url('session-1')

Правила в обоих языках одинаковые. Без id сессии newUrl раздаёт ваши URL по кругу. С id сессии каждый следующий вызов с тем же id возвращает тот же URL. Логин SDK не переписывает, поэтому липкая сессия GeekProxy должна быть зашита в саму строку. Нужно несколько фиксированных выходов, положите в список несколько липких строк из кабинета, по одной на сессию.

Консоль Apify, JSON-вход
Вход Apify в режиме JSON с объектом proxyConfiguration и своим URL прокси

6 Проверка работы

Запустите Web Scraper с единственным стартовым URL https://ipinfo.io/json и вашей строкой в Custom proxies. Тело страницы попадёт в датасет, и поле ip в нём должно показать адрес прокси, а не адрес Apify. На плане ISP или датацентра это адрес из кабинета, на Residential Turbo или Flex любой адрес из пула в выбранной стране. Прогоните дважды на ротационной строке, и два адреса должны отличаться.

Если запуск падает, ничего не успев скачать, проверьте строку из своего терминала, чтобы отделить проблему прокси от проблемы Actor:

curl -x http://LOGIN:PASSWORD@IP:PORT https://ipinfo.io/json

7 Какой продукт GeekProxy подходит

Apify уже ротирует и уже закрепляет сессии, так что дайте ему один шлюз и пусть две системы делят работу. Residential Turbo одной ротационной строкой это выбор по умолчанию для сайтов, которые режут облачные диапазоны. Каждый запрос может выйти с другого домашнего IP, HTTP или SOCKS5, а липкий логин держит выход, когда сессии Actor это нужно. Residential Flex делает то же по TCP с фильтром выхода по Windows или Android, что помогает, когда цель сравнивает ОС выхода с отпечатком браузера. Для массового обхода нетребовательных сайтов список URL датацентра IPv4 дешевле, а round-robin размажет нагрузку по нему. Списки ISP подходят Actors, которые логинятся и должны держать один адрес на аккаунт.

8 Частые проблемы

Секции нет на вкладке Input

Во входной схеме Actor не описано поле proxy, и консоли нечего показывать. Возьмите Actor, у которого оно есть, или добавьте поле в схему своего.

Proxy is required to run the scraper

Web Scraper отказывается стартовать без прокси. Выберите Custom proxies и вставьте хотя бы одну строку.

Каждый запрос падает с ошибкой авторизации

Либо данные неверные, либо план в режиме белого списка IP, который с меняющихся адресов Apify работать не может. Переведите план на логин и пароль в кабинете и повторите проверку curl.

Сессии постоянно меняют IP

Без id сессии по умолчанию идёт round-robin. Передавайте id сессии в newUrl и берите липкую строку из кабинета, чтобы и сторона прокси держала выход.

Хочу сначала дешёвые прокси, а резидентские только при блокировке

В Python SDK для этого есть tiered proxy URLs, но только при прямом создании ProxyConfiguration, а не через хелпер Actor. Прочитайте страницу Proxy management в документации Python, прежде чем на это опираться.

Не получается? Напишите нам в Telegram, Discord или в чат на сайте. Обычно отвечаем в течение нескольких минут.

Прокси для Apify

Один ротируемый резидентский шлюз или список статических IP, HTTP и SOCKS5 с логином и паролем, готово за секунды.

Заказать

We use cookies to improve user experience. By clicking "Yes, I agree", you consent to this use of cookies.

Привилегия первых: В честь глобального запуска [мы даем скидку 50%+] на все датацентр тарифы. Эксклюзивное предложение для наших стартовых партнеров.