Прокси для парсинга нужны не в каждом проекте, но стоит запустить скрипт с частотой один запрос в секунду с одного IP, и часть сайтов быстро отвечает кодом 403 или редиректом на страницу проверки. За несколько лет разработки парсеров на Python я собирал схемы под мониторинг цен конкурентов, сбор вакансий и синхронизацию остатков, и вопрос про прокси всплывает почти на каждом втором проекте. Дальше разберу, когда прокси реально нужны, а когда это лишние траты, какие типы прокси есть и чем они отличаются друг от друга, и сколько закладывать в бюджет на подключение.
Когда прокси для парсинга действительно нужны
Первый сигнал, что пора подключать прокси, это бан по IP после определённого числа запросов. Маркетплейсы, агрегаторы объявлений и часть интернет-магазинов на WooCommerce ставят лимит на количество обращений с одного адреса в минуту, и после превышения отдают капчу или временную блокировку. Если парсер обращается к сайту раз в 10-15 секунд и собирает пару сотен страниц в сутки, обычно хватает одного IP, задержек между запросами и смены User-Agent.
Прокси становятся обязательными в трёх ситуациях. Первая, объём: нужно собрать десятки тысяч страниц за короткое время, и один IP физически не успевает пройти лимит без блокировки. Вторая, гео-зависимость данных: цены на авиабилеты, доставку или наличие товара отличаются в зависимости от региона запроса, и без прокси из нужной страны или города данные будут искажены. Третья, распределённый сбор: несколько экземпляров парсера работают параллельно и должны выглядеть как разные посетители, а не как один скрипт, который долбит сайт из одной точки.
На практике клиенту с интернет-магазином на WooCommerce и эквайрингом от Т‑Банка я делал ежедневный мониторинг цен пяти конкурентов. Без прокси скрипт получал блокировку уже на второй день работы, после подключения пула из нескольких IP с ротацией сбор идёт стабильно уже несколько месяцев.
Какие бывают прокси для сбора данных: дата-центр, резидентские, мобильные, ISP
Прокси для парсинга делятся на четыре типа по происхождению IP-адреса, и от этого зависит и цена, и вероятность блокировки.
Дата-центровые прокси выдаются из адресных пулов облачных провайдеров. Они самые быстрые и дешёвые, но сайты с серьёзной защитой вычисляют их по диапазону адресов и банят пачками.
Резидентские прокси используют IP реальных провайдеров домашнего интернета, поэтому выглядят как обычный пользователь и реже попадают под блокировку. Стоят заметно дороже дата-центровых и обычно тарифицируются по объёму трафика, а не по количеству адресов.
Мобильные прокси идут через IP сотовых операторов. У операторов один и тот же адрес разделяют тысячи абонентов, поэтому блокировка такого IP задевает живых людей, и площадки банят их неохотно. Это самый дорогой и самый устойчивый к блокировкам вариант.
ISP-прокси, их иногда называют статическими резидентскими, это IP, зарегистрированные на провайдера, но выделенные под дата-центр. Компромисс между скоростью дата-центровых и доверием резидентских.
| Тип прокси | Скорость | Вероятность блокировки | Когда подходит |
|---|---|---|---|
| Дата-центр | Высокая | Высокая на защищённых сайтах | Открытые сайты без строгой защиты, большой объём запросов |
| Резидентские | Средняя | Низкая | Маркетплейсы, агрегаторы с антибот-системами |
| Мобильные | Средняя, зависит от сети оператора | Минимальная | Сайты с самой жёсткой защитой |
| ISP | Высокая | Средняя | Долгие сессии, где нужна стабильность и скорость одновременно |
Бесплатный материал
🎁 Полезный скрипт в подарок
Подпишитесь на Telegram - пришлю готовый скрипт по этой теме.
Без спама. Отписка в 1 клик.
Ротация IP и лимиты запросов: как снизить число блокировок
Один прокси-пул сам по себе не спасает от блокировок, если скрипт бьёт по сайту без пауз. Рабочая схема строится из нескольких элементов сразу: ротация IP на каждый запрос или на каждую сессию, задержки между обращениями, которые соблюдают rate-limit сайта, и уважение к правилам robots.txt там, где они явно ограничивают обход разделов.
Для Python-парсеров ротацию обычно делают через список прокси и функцию выбора следующего адреса по кругу или случайно:
import itertools
import requests
proxies_pool = [
"http://user:pass@proxy1.example.com:8000",
"http://user:pass@proxy2.example.com:8000",
"http://user:pass@proxy3.example.com:8000",
]
proxy_cycle = itertools.cycle(proxies_pool)
def fetch(url):
proxy = next(proxy_cycle)
response = requests.get(
url,
proxies={"http": proxy, "https": proxy},
timeout=10,
)
return response
Для проектов на Scrapy для той же задачи есть готовые middleware-пакеты для ротации прокси, их проще подключить через настройки, чем писать ротацию с нуля. В n8n прокси прописывается прямо в параметрах ноды HTTP Request, а список адресов для ротации удобно хранить в отдельной переменной окружения контейнера и выбирать случайный на старте workflow.
Кроме ротации адресов, снизить число блокировок помогает рандомизация заголовков запроса, смена User-Agent, использование сессий с сохранением cookies там, где сайт этого ожидает от обычного браузера, и разумная скорость сбора без параллельных потоков на один и тот же домен. Если сайт всё равно показывает проверку на живого пользователя чаще, чем хотелось бы, это отдельная статья расходов на сервис распознавания, и в бюджет парсера её стоит закладывать отдельно от прокси.
Сколько стоят прокси для парсинга
Провайдеры прокси считают деньги по-разному, и это стоит понимать до того, как берёте тариф. Дата-центровые пулы обычно продают пакетами IP на месяц, чем больше адресов в пакете, тем дешевле каждый в пересчёте. Резидентские и мобильные пулы почти всегда тарифицируются по объёму трафика в гигабайтах, и цена за гигабайт у резидентских выше, чем у дата-центровых, а у мобильных выше ещё в несколько раз.
Конкретные цифры я сознательно не привожу: тарифы у провайдеров прокси меняются по несколько раз в год, и то, что актуально сегодня, через полгода может оказаться неверным ориентиром. Смотрите текущий прайс у выбранного провайдера напрямую, перед стартом проекта.
Для оценки бюджета ориентируйтесь на объём запросов. Если парсер делает пару тысяч обращений в сутки к сайтам без жёсткой защиты, хватит недорогого дата-центрового пула. Если нужен постоянный сбор с маркетплейсов в больших объёмах с минимумом блокировок, закладывайте резидентский трафик, и расходы на прокси за месяц могут превысить стоимость самой разработки скрипта.
Сам скрипт я оцениваю отдельно от подписки на прокси-провайдера. Разработку парсера под задачу оцениваю от 20 000 ₽, в эту сумму входит логика сбора и обработки данных, обработка ошибок при недоступном прокси и настройка подключения к пулу через переменные окружения. Саму подписку на прокси клиент оформляет и оплачивает у провайдера напрямую, я не выступаю посредником по этой части бюджета.
Как выбрать прокси под конкретную задачу
На старте проекта я спрашиваю у клиента про объём и частоту запросов, про то, есть ли у источника данных видимая защита, которая срабатывает при обычном заходе с браузера, и уже под это подбираю тип прокси, а не сразу предлагаю самый дорогой мобильный пул.
- Мониторинг цен на маркетплейсах и в интернет-магазинах: нужен пул резидентских адресов с ротацией на каждый запрос, иначе антибот-система быстро вычисляет паттерн обращений и блокирует сессию.
- Сбор вакансий и объявлений с открытых площадок: чаще хватает дата-центровых прокси, если соблюдать паузы между запросами и не грузить сайт параллельными потоками.
- Автоматизация в n8n с нодой HTTP Request: прокси прописывается в параметрах ноды или через переменные окружения контейнера, ротацию удобно делать списком адресов со случайным выбором.
- Сверка условий доставки СДЭК по разным городам: здесь важна не защита от блокировок, а гео-таргетинг конкретного региона, поэтому нужен прокси именно с нужной геолокацией, а не просто ротация случайных IP.
- Telegram-бот на aiogram, который по расписанию тянет данные с внешнего сайта: прокси нужен самому HTTP-запросу к источнику данных, а не обращению к Telegram Bot API, для него отдельный прокси обычно не требуется.
Частые вопросы
Нужны ли прокси для парсинга небольшого сайта?
Если сайт без строгой защиты и скрипт делает десяток-другой запросов в час, прокси не нужен, хватит пауз между запросами и нормального User-Agent. Подключать платный пул имеет смысл, когда объём или частота растут настолько, что один IP начинает получать код 403 или капчу.
Чем резидентские прокси отличаются от дата-центровых?
Дата-центровые прокси выдаются из адресных пулов облачных провайдеров, они быстрые и дешёвые, но их легче вычислить по диапазону адресов. Резидентские используют IP реальных домашних провайдеров, выглядят как обычный пользователь и реже попадают под блокировку, но тарифицируются по объёму трафика и стоят заметно дороже.
Можно ли парсить сайт без прокси и не получить блокировку?
Можно, если соблюдать rate-limit источника, не запускать параллельные потоки на один и тот же адрес и уважать правила robots.txt. Для небольших разовых сборов такой подход обычно работает, для регулярного мониторинга большого объёма страниц один IP рано или поздно упирается в лимит запросов.
Сколько стоит подключить прокси к готовому парсеру?
Настройка подключения: переменные окружения, ротация адресов, обработка ошибок при недоступном прокси, обычно занимает несколько часов работы и входит в стоимость доработки скрипта. Подписка на сам прокси-пул оплачивается отдельно у провайдера и зависит от выбранного типа прокси и объёма трафика.