Назад к блогу

Прокси для парсинга характеристик товаров: как собирать данные с маркетплейсов без блокировок

Подробное руководство по выбору и настройке прокси для парсинга характеристик товаров с маркетплейсов: типы прокси, ротация IP, обход антибот-систем Wildberries и Ozon.

📅26 января 2026 г.

Парсинг характеристик товаров с маркетплейсов — критически важная задача для селлеров, аналитиков и агрегаторов цен. Wildberries, Ozon, Яндекс.Маркет и другие площадки активно блокируют автоматический сбор данных, используя продвинутые антибот-системы. Без правильно настроенных прокси ваш парсер получит бан уже после 50-100 запросов. В этой статье разберём, какие типы прокси подходят для парсинга, как настроить ротацию IP и обойти защиту крупнейших маркетплейсов.

Почему маркетплейсы блокируют парсинг и как это работает

Современные маркетплейсы теряют миллионы рублей из-за парсинга: конкуренты копируют описания товаров, агрегаторы перехватывают трафик, а нагрузка на сервера возрастает. Поэтому Wildberries, Ozon, Яндекс.Маркет и другие площадки внедрили многоуровневую защиту от автоматического сбора данных.

Как маркетплейсы определяют парсинг:

  • Частота запросов с одного IP — если с одного адреса приходит 100+ запросов в минуту, это явный признак бота. Обычный пользователь просматривает 5-10 карточек товаров за это время.
  • Отсутствие JavaScript — простые парсеры на requests или curl не выполняют JS-код, который загружает цены и характеристики. Сайт видит, что контент запрашивается без рендеринга.
  • User-Agent и заголовки — дефолтные заголовки библиотек (например, "python-requests/2.28.0") мгновенно выдают бота. Отсутствие заголовков Accept-Language, Referer тоже подозрительно.
  • Fingerprint браузера — продвинутые системы (Cloudflare, Kasada, DataDome) анализируют Canvas, WebGL, шрифты, расширения браузера. Headless-браузеры типа Puppeteer легко определяются по отсутствию некоторых параметров.
  • Поведенческие паттерны — бот открывает карточки товаров с одинаковым интервалом (например, ровно каждые 2 секунды), не скроллит страницу, не двигает мышью. Это отличает его от живого человека.

Последствия блокировки: Временный бан IP на 1-24 часа, CAPTCHA на каждый запрос, полная блокировка диапазона IP дата-центра. Для бизнеса это означает остановку сбора данных и потерю конкурентного преимущества.

Реальный кейс: Агрегатор цен парсил Wildberries с 10 IP дата-центра, делая по 500 запросов в час с каждого. Через 3 дня весь диапазон /24 получил постоянный бан — пришлось менять провайдера прокси и переходить на резидентные IP с ротацией.

Сравнение типов прокси для парсинга товаров

Для парсинга характеристик товаров используются три основных типа прокси. Каждый имеет свои преимущества и ограничения в зависимости от объёма данных, бюджета и требований к скорости.

Тип прокси Скорость Риск бана Стоимость Когда использовать
Прокси дата-центров Высокая (50-200 мс) Высокий Низкая Парсинг небольших объёмов (до 10 000 товаров/день), тестирование парсера
Резидентные прокси Средняя (200-800 мс) Низкий Высокая (по трафику) Парсинг Wildberries, Ozon с защитой от ботов, большие объёмы данных
Мобильные прокси Средняя (300-1000 мс) Очень низкий Очень высокая Парсинг с максимальной защитой, обход жёстких блокировок, критичные проекты

Прокси дата-центров — это IP-адреса серверов в дата-центрах (AWS, Hetzner, OVH). Они быстрые и дешёвые, но маркетплейсы легко определяют их по базам ASN. Подходят для парсинга небольших каталогов (до 10 000 товаров в день) или площадок без серьёзной защиты. Стоимость: от 1-3$ за IP в месяц.

Резидентные прокси — это IP домашних пользователей, полученные легально через SDK в приложениях. Маркетплейсы воспринимают их как обычных покупателей. Идеальны для парсинга Wildberries, Ozon, Яндекс.Маркет в больших объёмах. Стоимость: от 5-15$ за 1 ГБ трафика (примерно 10 000-30 000 запросов).

Мобильные прокси — IP мобильных операторов (МТС, Билайн, Мегафон). Самый надёжный тип для обхода защиты, но дорогой и медленный. Используйте только для критичных задач, где блокировка недопустима. Стоимость: от 50-150$ за IP в месяц с ротацией.

Резидентные или дата-центры: что выбрать для вашей задачи

Выбор типа прокси зависит от трёх факторов: объём парсинга, уровень защиты площадки и бюджет. Давайте разберём конкретные сценарии использования.

Когда подходят прокси дата-центров

Сценарий 1: Тестирование парсера
Вы разрабатываете новый парсер и проверяете логику извлечения данных. Нужно спарсить 100-500 товаров для отладки. В этом случае резидентные прокси — избыточная трата денег. Возьмите 5-10 IP дата-центра и делайте по 50-100 запросов с каждого в час. Этого хватит для тестирования без блокировок.

Сценарий 2: Парсинг площадок без защиты
Небольшие региональные маркетплейсы, доски объявлений типа Авито (в некоторых категориях), интернет-магазины на OpenCart часто не имеют серьёзной антибот-системы. Здесь дата-центры работают стабильно при условии умеренной нагрузки (до 200 запросов в час с IP).

Сценарий 3: Ограниченный бюджет и небольшие объёмы
Если вам нужно парсить 5 000-10 000 товаров в день, а бюджет ограничен, попробуйте дата-центры с агрессивной ротацией (смена IP каждые 50-100 запросов). Да, будет больше блокировок, но при правильной настройке retry-логики (повтор запроса с новым IP) это работает.

Когда нужны резидентные прокси

Сценарий 1: Парсинг Wildberries и Ozon
Эти площадки используют Cloudflare, DataDome и собственные антибот-системы. С дата-центров вы получите CAPTCHA или бан после 20-50 запросов. Резидентные прокси с ротацией каждые 5-10 минут позволяют парсить сотни тысяч товаров без проблем. Один клиент парсил весь каталог Wildberries (20+ млн товаров) за неделю, используя пул из 1000 резидентных IP.

Сценарий 2: Парсинг с авторизацией
Некоторые характеристики товаров (оптовые цены, остатки на складах) доступны только авторизованным пользователям. Если вы парсите через аккаунт, использование дата-центров приведёт к блокировке аккаунта. Резидентные прокси имитируют действия реального пользователя, снижая риск бана.

Сценарий 3: Геотаргетинг
Цены и наличие товаров на Wildberries, Ozon, Яндекс.Маркет зависят от региона пользователя. Чтобы собрать данные по Москве, Санкт-Петербургу, Екатеринбургу одновременно, нужны резидентные прокси с выбором города. Дата-центры не позволяют точно контролировать геолокацию.

Формула выбора типа прокси:

  • Объём < 10 000 товаров/день + нет жёсткой защиты = дата-центры
  • Объём > 10 000 товаров/день + Wildberries/Ozon = резидентные
  • Парсинг с авторизацией + риск бана аккаунта = резидентные
  • Нужен геотаргетинг по городам РФ = резидентные
  • Критичный проект + нулевая терпимость к блокировкам = мобильные

Настройка ротации IP: интервалы и стратегии

Ротация IP — это автоматическая смена прокси-сервера после определённого количества запросов или времени. Правильная настройка ротации — ключ к стабильному парсингу без блокировок.

Типы ротации прокси

1. Ротация по времени (Time-based rotation)
IP меняется через фиксированный интервал: 5 минут, 10 минут, 30 минут. Это самый простой метод, но не самый эффективный. Если вы делаете 200 запросов за 5 минут, а лимит площадки — 100 запросов с IP, вы всё равно получите бан.

Когда использовать: Для резидентных прокси с низкой нагрузкой (до 50 запросов на IP). Например, парсинг Wildberries с интервалом 3-5 секунд между запросами — ротация каждые 10 минут будет оптимальной.

2. Ротация по количеству запросов (Request-based rotation)
IP меняется после N запросов: 50, 100, 200. Это точнее, чем временная ротация, но требует отслеживания счётчика запросов в коде парсера.

Когда использовать: Для дата-центров и агрессивного парсинга. Например, вы знаете, что Ozon блокирует после 80 запросов с IP — установите ротацию каждые 70 запросов с запасом.

3. Ротация по каждому запросу (Per-request rotation)
Каждый запрос идёт через новый IP. Максимальная защита от блокировок, но самая дорогая стратегия для резидентных прокси (расход трафика увеличивается из-за установки новых соединений).

Когда использовать: Для обхода самых жёстких защит (Cloudflare в режиме "Under Attack"), парсинга с высоким риском бана аккаунта, сбора данных конкурентов, которые отслеживают парсинг.

Рекомендуемые интервалы ротации для популярных площадок

Площадка Тип прокси Интервал ротации Задержка между запросами
Wildberries Резидентные Каждые 5-10 минут или 50 запросов 2-4 секунды
Ozon Резидентные Каждые 7-12 минут или 60 запросов 3-5 секунд
Яндекс.Маркет Резидентные Каждые 10-15 минут или 80 запросов 2-3 секунды
Авито (категория товары) Дата-центры Каждые 15-20 минут или 100 запросов 1-2 секунды
AliExpress Резидентные Каждые 3-5 минут или 30 запросов 4-6 секунд

Важный момент: Эти цифры — результат тестирования в 2024 году. Маркетплейсы постоянно обновляют защиту, поэтому рекомендуется начинать с консервативных настроек (меньше запросов, больше задержка) и постепенно увеличивать нагрузку, отслеживая процент блокировок.

Стратегия "умной" ротации

Вместо фиксированных интервалов используйте адаптивную ротацию на основе ответов сервера:

  • HTTP 429 (Too Many Requests) — немедленная смена IP и добавление этого IP в чёрный список на 30-60 минут.
  • HTTP 403 (Forbidden) или CAPTCHA — смена IP и увеличение задержки между запросами на 50%.
  • HTTP 503 (Service Unavailable) — возможно, проблема не в прокси, а в перегрузке сайта. Пауза 30-60 секунд без смены IP.
  • Успешные запросы подряд > 100 — можно немного уменьшить задержку или увеличить количество запросов до ротации.

Эта логика реализуется в коде парсера и позволяет экономить до 30-40% прокси-трафика, избегая ненужных ротаций.

Обход антибот-систем Wildberries, Ozon и Яндекс.Маркет

Современные маркетплейсы используют многоуровневую защиту: от простой проверки User-Agent до продвинутого fingerprinting браузера. Одних прокси недостаточно — нужна комплексная стратегия обхода.

Уровень 1: Правильные заголовки HTTP

Минимальный набор заголовков, который должен отправлять ваш парсер:

User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: ru-RU,ru;q=0.9,en;q=0.8
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: none
Sec-Fetch-User: ?1
Cache-Control: max-age=0

Критичные моменты:

  • User-Agent должен соответствовать реальному браузеру. Используйте актуальные версии Chrome 120+, Firefox 121+. Не используйте старые версии (Chrome 90) — это красный флаг.
  • Accept-Language должен быть "ru-RU" для российских площадок. Если парсите с заголовком "en-US", сайт понимает несоответствие (IP из России, но язык английский).
  • Sec-Fetch-* заголовки появились в Chrome 76+ и обязательны для современных сайтов. Их отсутствие выдаёт старый парсер.

Уровень 2: Выполнение JavaScript

Wildberries и Ozon загружают цены, характеристики, остатки через JavaScript после загрузки страницы. Если ваш парсер на requests/curl просто скачивает HTML, он получит пустую страницу или заглушку.

Решение: Используйте headless-браузеры — Puppeteer (Node.js), Playwright (Python/Node.js), Selenium. Они полностью рендерят страницу, выполняют JS и получают финальный HTML.

Проблема headless-браузеров: Сайты легко определяют их по параметрам navigator.webdriver === true, отсутствию плагинов, специфичным размерам Canvas. Процент определения headless Chrome — около 80-90%.

Решение проблемы: Используйте библиотеки для стелс-режима:

  • puppeteer-extra-plugin-stealth (Node.js) — маскирует Puppeteer под обычный Chrome, патчит 30+ параметров fingerprint.
  • undetected-chromedriver (Python) — патченная версия Selenium ChromeDriver, которую не определяет большинство антибот-систем.
  • playwright-stealth (Python) — аналог для Playwright с поддержкой Firefox и WebKit.

Уровень 3: Обход Cloudflare и DataDome

Wildberries использует Cloudflare Bot Management, Ozon — DataDome. Эти системы анализируют не только IP и заголовки, но и поведение: скорость скроллинга, движения мыши, время загрузки страницы.

Признаки Cloudflare Challenge: Вместо контента вы видите страницу "Checking your browser..." с 5-секундной задержкой. В коде это JavaScript-challenge, который проверяет браузер.

Как обойти:

  • FlareSolverr — прокси-сервис, который решает Cloudflare Challenge автоматически. Вы отправляете ему URL, он возвращает cookies для обхода. Работает в 70-80% случаев.
  • Playwright с ожиданием — загружаете страницу в headless-браузере, ждёте 10-15 секунд (пока JS выполнится), извлекаете cookies и используете их в обычных HTTP-запросах. Экономит ресурсы: браузер нужен только для получения cookies, дальше парсите через requests.
  • Резидентные прокси + stealth-браузер — комбинация даёт 95%+ успешных обходов. Cloudflare видит реальный IP пользователя и правильный fingerprint браузера.

Важно: Cloudflare постоянно обновляет защиту. То, что работало в декабре 2024, может не работать в марте 2025. Всегда имейте запасной план: ручное решение CAPTCHA через сервисы 2Captcha/AntiCaptcha или переключение на API маркетплейса (если доступно).

Уровень 4: Имитация поведения пользователя

Продвинутые антибот-системы отслеживают паттерны поведения. Настоящий пользователь скроллит страницу, двигает мышью, иногда возвращается назад. Бот открывает карточки товаров с идеальным интервалом 2.000 секунды.

Как имитировать:

  • Рандомизация задержек — вместо фиксированных 3 секунд используйте random.uniform(2.5, 5.0). Добавьте редкие длинные паузы (15-30 секунд), имитируя отвлечение пользователя.
  • Скроллинг страницы — в Puppeteer/Playwright добавьте скроллинг перед извлечением данных: await page.evaluate(() => window.scrollBy(0, 500)).
  • Движения мыши — библиотека ghost-cursor для Puppeteer генерирует реалистичные траектории движения курсора.
  • Переходы через поиск — не открывайте карточки товаров напрямую по URL. Сначала зайдите на главную, выполните поиск, кликните на товар в результатах. Это выглядит естественно.

Популярные инструменты для парсинга с поддержкой прокси

Для парсинга характеристик товаров не обязательно писать код с нуля. Существуют готовые инструменты с визуальным интерфейсом, поддержкой прокси и автоматическим обходом защиты.

Octoparse — парсер без кода

Описание: Desktop-приложение для Windows/Mac с визуальным конструктором парсеров. Вы кликаете на элементы страницы (название товара, цену, характеристики), программа автоматически создаёт правила извлечения.

Поддержка прокси: Встроенная. В настройках указываете список прокси, программа автоматически ротирует их. Поддерживает HTTP, HTTPS, SOCKS5. Есть интеграция с провайдерами Bright Data, Smartproxy.

Плюсы: Не нужен код, работает с JavaScript-сайтами, встроенный планировщик задач, экспорт в Excel/CSV/JSON.
Минусы: Платная подписка от 75$/месяц, медленнее чем код на Python, ограничения на количество страниц в бесплатной версии.

Когда использовать: Для небольших проектов (до 50 000 товаров), если вы не программист или нужен быстрый прототип.

ParseHub — облачный парсер

Описание: Аналог Octoparse, но работает в облаке. Вы настраиваете парсер в десктопном приложении, а запускается он на серверах ParseHub. Удобно для долгих задач (парсинг 100 000+ товаров).

Поддержка прокси: Только в платных тарифах (от 149$/месяц). Можно загрузить свой список прокси или использовать встроенные резидентные IP ParseHub.

Плюсы: Не нагружает ваш компьютер, автоматическая обработка пагинации, API для интеграции.
Минусы: Дорого, медленная поддержка, сложности с настройкой для сложных сайтов.

Scrapy (Python) — для программистов

Описание: Фреймворк для создания парсеров на Python. Самый гибкий и быстрый вариант — можно парсить миллионы товаров в день. Требует знания Python на среднем уровне.

Поддержка прокси: Через middleware. Популярные решения: scrapy-rotating-proxies (ротация из списка), scrapy-proxy-pool (интеграция с API провайдеров). Настройка занимает 10-15 минут.

Плюсы: Бесплатный, очень быстрый (асинхронные запросы), полный контроль над логикой, огромное сообщество.
Минусы: Нужно писать код, сложности с JavaScript-сайтами (требуется интеграция с Splash или Playwright).

Когда использовать: Для серьёзных проектов с объёмом 100 000+ товаров в день, если у вас есть программист в команде.

Apify — маркетплейс готовых парсеров

Описание: Платформа с тысячами готовых парсеров (называются "акторы") для популярных сайтов. Есть готовые решения для Amazon, eBay, AliExpress. Для российских маркетплейсов выбор меньше, но можно заказать разработку.

Поддержка прокси: Встроенная во все акторы. Apify предоставляет собственные резидентные прокси (оплата по трафику) или можно подключить свои.

Плюсы: Готовые решения, облачное выполнение, API для автоматизации, встроенные прокси.
Минусы: Дорого (от 49$/месяц + оплата прокси), зависимость от платформы, ограничения на кастомизацию.

Сравнение инструментов

Инструмент Нужен код? Цена Скорость Для кого
Octoparse Нет От 75$/мес Средняя Маркетологи, аналитики без программирования
ParseHub Нет От 149$/мес Средняя Те же, кто хочет облачное выполнение
Scrapy Да (Python) Бесплатно Очень высокая Программисты, большие объёмы данных
Apify Нет (готовые акторы) От 49$/мес + трафик Высокая Бизнес, нужны готовые решения
Puppeteer/Playwright Да (JS/Python) Бесплатно Средняя (тяжёлые браузеры) Программисты, сложные JS-сайты

Пошаговая настройка прокси в парсере

Рассмотрим практическую настройку прокси на примере популярных инструментов. Эти инструкции подходят для парсинга любых маркетплейсов, не только российских.

Настройка в Octoparse

Шаг 1: Откройте Octoparse и создайте новую задачу парсинга. Введите URL стартовой страницы (например, категория товаров на Wildberries).

Шаг 2: Перейдите в меню "Settings" → "Advanced Settings" → "Proxy". Выберите "Use custom proxy".

Шаг 3: Добавьте прокси в формате:

http://username:password@proxy-server.com:8080
socks5://username:password@proxy-server.com:1080

Шаг 4: Включите опцию "Rotate proxy" и установите интервал ротации. Для Wildberries рекомендуется "Rotate on every 50 requests" или "Rotate every 10 minutes".

Шаг 5: Нажмите "Test Proxy" — Octoparse проверит доступность каждого прокси. Удалите нерабочие из списка.

Шаг 6: В разделе "Speed" установите задержку между запросами: 2-4 секунды для резидентных прокси, 3-5 секунд для дата-центров.

Настройка в Scrapy (Python)

Шаг 1: Установите библиотеку для ротации прокси:

pip install scrapy-rotating-proxies

Шаг 2: Создайте файл proxies.txt со списком прокси (по одному на строку):

http://user:pass@1.2.3.4:8080
http://user:pass@5.6.7.8:8080
socks5://user:pass@9.10.11.12:1080

Шаг 3: В файле settings.py вашего Scrapy-проекта добавьте:

ROTATING_PROXY_LIST_PATH = 'proxies.txt'

DOWNLOADER_MIDDLEWARES = {
    'rotating_proxies.middlewares.RotatingProxyMiddleware': 610,
    'rotating_proxies.middlewares.BanDetectionMiddleware': 620,
}

# Задержка между запросами (в секундах)
DOWNLOAD_DELAY = 3

# Рандомизация задержки (±50%)
RANDOMIZE_DOWNLOAD_DELAY = True

# Параллельные запросы (не больше 16 для резидентных прокси)
CONCURRENT_REQUESTS = 8

Шаг 4: Scrapy автоматически будет ротировать прокси при каждом запросе. Если прокси возвращает ошибку (HTTP 403, 429, таймаут), он помечается как "плохой" и временно исключается из ротации.

Настройка в Puppeteer (Node.js)

Шаг 1: Установите Puppeteer и плагин для стелс-режима:

npm install puppeteer puppeteer-extra puppeteer-extra-plugin-stealth

Шаг 2: Создайте скрипт с поддержкой прокси:

const puppeteer = require('puppeteer-extra');
const StealthPlugin = require('puppeteer-extra-plugin-stealth');
puppeteer.use(StealthPlugin());

const proxyList = [
  'http://user:pass@proxy1.com:8080',
  'http://user:pass@proxy2.com:8080'
];

let currentProxyIndex = 0;

async function scrapeWithProxy(url) {
  const proxy = proxyList[currentProxyIndex];
  currentProxyIndex = (currentProxyIndex + 1) % proxyList.length;

  const browser = await puppeteer.launch({
    headless: true,
    args: [`--proxy-server=${proxy}`]
  });

  const page = await browser.newPage();
  
  // Авторизация прокси (если требуется)
  await page.authenticate({
    username: 'user',
    password: 'pass'
  });

  await page.goto(url, { waitUntil: 'networkidle2' });
  
  // Извлечение данных
  const data = await page.evaluate(() => {
    return {
      title: document.querySelector('.product-title')?.innerText,
      price: document.