Что такое Apify и как он помогает автоматизировать сбор данных
Apify — платформа для веб‑автоматизации и сбора данных, где сценарий запускается как Actor: получает входные параметры, выполняет действия (скрейпинг, парсинг, браузерная автоматизация), сохраняет результат в хранилища (Dataset / Key‑Value Store / Request Queue) и отдаёт данные через API или интеграции. Для команд маркетинга и аналитики это удобный способ превратить разовую проверку конкурентов в регулярный, управляемый процесс: запуск по расписанию, повторяемые результаты, понятные логи.
Сценарий «аналитика ассортимента конкурентов» обычно строится так: Actor собирает публичные карточки товаров (название, цена, наличие, характеристики) → нормализует поля → пишет в Dataset → по завершении отправляет вебхук в BI/таблицу/оркестратор, где данные объединяются и сравниваются.
Прокси для Apify: когда нужны индивидуальные mobile proxy
Пользуются прокси для Apify в двух практичных случаях: (1) чтобы уменьшить риск блокировок по IP/частоте, (2) чтобы корректно видеть локализованный контент (язык, валюту, ассортимент) в нужной стране. Индивидуальные mobile proxy (3G/4G/5G) чаще всего берут для быстрых пилотов (proof‑of‑concept) и проверок «как с мобильного трафика», когда важны мобильные подсети и “поведение” сайта именно для них.
Apify Proxy или свои прокси
- Apify Proxy — встроенный вариант (datacenter / residential / SERP) с понятными параметрами страны, групп и сессий.
- Custom proxies — ваши сторонние прокси (в том числе mobile), когда вы хотите контролировать пул, ASN/оператора и режим “липкости”.
| Тип | Плюсы | Минусы | Хорош для |
|---|---|---|---|
| Datacenter | Скорость, стабильность, цена | Могут баниться чаще | Массовый сбор, нестрогие сайты |
| Residential | Часто выше “доверие” как к ISP | Дороже, сессии могут быть короче | Маркетплейсы, строгие каталоги |
| Mobile | Похоже на мобильный трафик, полезно для PoC | Самый дорогой тип, зависит от провайдера | Geo‑проверки, мобильные версии, QA локализации |
Где в Apify задаётся прокси: профиль и запуск Actor
Уровень профиля: Apify Console → Proxy
На уровне аккаунта есть раздел Proxy в Apify Console: там отображается пароль Apify Proxy и доступные группы. Документация прямо указывает, что пароль берётся со страницы Proxy в консоли.
С точки зрения безопасности важно помнить: подключение к Apify Proxy идёт по HTTP proxy protocol, и в документации есть предупреждение, что пароль передаётся незашифрованным из‑за ограничений протокола. Вывод: не храните пароль в открытом виде, не выводите его в общий лог, ограничьте доступ к настройкам.
Уровень запуска: Input and options → Proxy and browser configuration
Сторонние (свои) прокси подключаются на уровне конкретного запуска Actor или Task: в Input and options прокрутите до блока Proxy and browser configuration и вставьте список proxy URL. Это описано в официальной инструкции «Using your own proxies».
Уровень кода: ProxyConfiguration (Crawlee / Apify SDK)
Если Actor написан на SDK, прокси управляются через ProxyConfiguration и генерацию URL с учётом sessionId, что удобно для контроля “липких” сессий (session persistence) и ротации.
Какие поля нужны: host/port/login/password и протокол
Индивидуальные mobile proxy обычно предоставляются как набор полей: host, port, login, password и тип протокола (чаще http или https). В Apify эти поля удобнее всего собрать в одну строку:
http://LOGIN:PASSWORD@HOST:PORT
| Поле | Что это | Где используется | Частая ошибка |
|---|---|---|---|
| host | шлюз прокси | часть URL | путают с целевым доменом |
| port | порт шлюза | часть URL | берут “порт панели”, а не порт прокси |
| login | подпользователь/параметры пула | часть URL | не учитывают спецсимволы |
| password | пароль | часть URL | выводят в логах |
| protocol | http/https | схема URL | указывают https, хотя прокси поддерживает только http |
Пошагово: подключение индивидуальных mobile proxy (без лишней магии)
- Соберите 1–10 прокси URL для пилота (на старте важно качество, не масштаб).
- Добавьте их как Custom proxies в Proxy and browser configuration.
- Запустите короткий тест (малый лимит страниц, 1–2 параллельных потока) и включите логирование контрольных сигналов (IP/страна/редиректы).
Валидация: страна, ASN и “не прыгающая” сессия
1) IP → Country во время run
Самый практичный способ — сделать контрольный запрос через прокси на диагностический endpoint, который вернёт IP и код страны. У Apify есть /v2/browser-info: он показывает clientIp, countryCode и часть заголовков, включая accept-language.
2) ASN check: отличаем mobile/ISP от hosting
Правильная страна ещё не гарантирует “мобильность”. Для mobile proxy полезно проверить ASN (автономную систему), которой принадлежит IP, и убедиться, что это ISP/оператор, а не типичный хостинг. Источники данных — ASN‑справка у провайдеров вроде IPinfo и документация RIPEstat по ASN/странам и маршрутизации.
3) Session persistence: как убедиться, что сессия не «скачет»
Сделайте 3–5 контрольных запросов с одним и тем же sessionId и сравните IP. Если IP меняется сам — липкости нет или провайдер делает короткую ротацию. Для Apify Proxy “липкость” задаётся параметром session в username, и документация описывает, что одинаковый session ID маршрутизируется через один IP, а время жизни сессии зависит от типа прокси.
| Проверка | Инструмент | Ожидаемо | Если не так |
|---|---|---|---|
| Страна | browser-info через прокси | countryCode совпадает | проверить настройки пула/логина у провайдера |
| ASN | ASN lookup по clientIp | ISP/оператор | попросить другой пул или сменить провайдера |
| Липкость | 3–5 запросов в одной сессии | IP стабилен | включить sticky/сессии у провайдера |
Риски и ограничения: почему «страна та, а локаль не та»
Локализация сайта — это смесь сигналов. Помимо IP, на выбор языка/версии влияют:
- Accept-Language — стандартный заголовок предпочтений языка/локали.
- Timezone и locale в браузерном окружении (часто считывается фронтендом через JS).
- Cookies/LocalStorage — сайт «помнит» ваш выбор страны/валюты.
- CDN edge / server-side geo — например, Cloudflare добавляет
CF-IPCountryна основе своей базы гео.
Практическое правило для QA локализации: удерживайте согласованность сигналов (IP‑гео + Accept‑Language + timezone + чистая сессия) и фиксируйте их в логах.
Почему ломаются виджеты и пиксели
Иногда основной HTML доступен, но не загружаются сторонние виджеты (карты, наличие, рекомендации) или пиксели. Причины обычно в политиках third‑party провайдеров: гео‑ограничения, блокировки подсетей/ASN, rate limiting. Для аналитики ассортимента важно понимать, откуда берутся финальные цены/наличие: если они подгружаются отдельным API, для корректного результата может понадобиться браузерный режим или отдельный публичный endpoint (если он разрешён).
Как отличить проблему прокси от проблемы сайта: минимальный алгоритм
- Проверить прокси на browser-info (IP/страна/accept-language).
- Сравнить поведение без прокси.
- Сравнить двумя разными прокси (разные ASN/типы).
- Проверить редиректы (geo redirect) и снизить скорость (rate limiting).
- Если используете Apify Proxy — учитывать подсказки 59x кодов (590–599) про upstream ошибки.
FAQ
Можно ли использовать свои прокси в Apify Console?
Да, через Custom proxies в Proxy and browser configuration.
Как убедиться, что прокси действительно в нужной стране?
Через Apify /v2/browser-info (countryCode) и повтором теста на нескольких сессиях.
Почему проверять ASN важно именно для mobile proxy?
Потому что “мобильность” часто определяется тем, кому принадлежит сеть. ASN check помогает отличить оператора/ISP от хостинга и быстрее понять, почему сайт ведёт себя иначе.
Источники
- Apify Docs: Proxy usage; Using your own proxies; Running Actors; Webhooks.
- MDN: Accept-Language.
- Cloudflare: IP geolocation (CF-IPCountry).
- RIPEstat / IPinfo: справка по ASN.