← Назад в базу знаний

Парсинг Wildberries и Ozon через резидентные прокси: почему мобильные IP живут дольше

Парсинг Wildberries и Ozon через резидентные прокси: почему мобильные IP живут дольше

Анатомия блокировок маркетплейсов

Wildberries и Ozon построили серьезную оборону. Их антибот-системы анализируют не только IP-адрес, но и поведенческие паттерны, отпечатки браузера, тайминги запросов. Классический дата-центровый прокси палится за пару минут — у него нет истории, он числится в подсетях облачных провайдеров, и его диапазоны давно внесены в черные списки.

Мобильные IP живут в подсетях операторов связи. Эти диапазоны принадлежат реальным абонентам — людям, которые сидят в TikTok, заказывают еду и читают новости. Для антибота такой трафик выглядит естественно. Плюс мобильные операторы используют CGNAT — за одним публичным IP сидят десятки абонентов, и заблокировать его нельзя без ущерба для реальных пользователей.

Разница в выживаемости колоссальная. Дата-центровый прокси в среднем живет от 2 до 24 часов на Wildberries. Мобильный — от 3 до 14 дней. Причина не в "качестве" IP, а в репутационном скоринге, который строит антибот.

Как работает скоринг

Антибот-система маркетплейса присваивает каждому IP баллы. Чем больше баллов — тем выше доверие. Начисляются баллы за:

- Возраст IP-адреса

- Историю запросов с него

- Отсутствие жалоб от других сервисов

- Соответствие поведенческим паттернам

Мобильный IP с возрастом 6+ месяцев и стабильной историей — это "белый" трафик. Ему доверяют. Но если с него начинают долбить 1000 запросов в минуту — скоринг резко падает, и IP уходит в бан.

Ключевой момент: мобильные прокси используют пул IP, который ротируется. Один запрос — один IP. Даже если антибот заблокирует один адрес, остальные 99 999 в пуле продолжают работать.

Ротация и тайминги

Настройка ротации решает всё. Для Wildberries оптимальный интервал смены IP — 30-60 секунд. Для Ozon — 60-120 секунд. Если менять чаще — антибот заподозрит неладное: у реального человека не может каждые 5 секунд меняться IP.

Тайминги между запросами тоже критичны. Два запроса с одного IP с интервалом 100 мс — мгновенный бан. Реальный пользователь тратит на просмотр страницы 5-10 секунд минимум. Добавьте к этому случайные задержки 3-7 секунд и джиттер — и ваш трафик станет неотличим от человеческого.

```python

import time

import random

import requests

proxies = {

"http": "http://user:pass@proxy.lexic.ml:50000",

"https": "http://user:pass@proxy.lexic.ml:50000"

}

headers = {

"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)",

"Accept-Language": "ru-RU,ru;q=0.9",

}

for page in range(1, 101):

delay = random.uniform(3, 7)

time.sleep(delay)

response = requests.get(

f"https://www.wildberries.ru/catalog/0/search.aspx?page={page}&query=iphone",

proxies=proxies,

headers=headers,

timeout=30

)

if response.status_code == 200:

print(f"Page {page}: OK")

elif response.status_code == 429:

print(f"Page {page}: rate limited, backing off")

time.sleep(60)

else:

print(f"Page {page}: {response.status_code}")

```

Кейс: парсинг карточек товаров Ozon

Задача: собрать 500 000 карточек товаров из категории "Электроника". Используем Ozon API — но у него жесткие лимиты: 10 запросов в секунду на ключ. Этого мало для полного обхода.

Обходим через парсинг публичной выдачи. Проблема: антибот Ozon анализирует не только IP, но и cookies, и отпечаток браузера. Обычный requests не пройдет — нужен headless-браузер с реальным fingerprint.

Решение: связка Playwright + резидентные мобильные прокси с ротацией на каждый запрос. Каждая сессия браузера — свежий IP, свежие cookies, чистый canvas fingerprint.

```bash

curl -x http://user:pass@proxy.lexic.ml:50000 \

-H "User-Agent: Mozilla/5.0 (Linux; Android 13; Pixel 7)" \

-H "Accept: text/html,application/xhtml+xml" \

"https://www.ozon.ru/category/elektronika-15500/"

```

Результат: 500 000 карточек за 14 часов без единого бана. Средний IP жил 4-6 часов, после чего уходил в ротацию. Ключевой фактор — мобильные IP из подсетей МТС и Билайн, которые не числятся в базах злоупотреблений.

Кейс: мониторинг цен Wildberries

Другой сценарий — постоянный мониторинг цен конкурентов. Тут нужен не разовый обход, а долгоживущие сессии. Пул из 50 мобильных IP, каждый привязан к конкретной сессии браузера.

Проблема: Wildberries привязывает корзину и избранное к IP. Если IP сменится — пользователь потеряет данные. Поэтому для мониторинга нужны стабильные мобильные IP, а не ротация на каждый запрос.

Решение: sticky-сессии на 24 часа. Каждый IP живет сутки, потом плавно меняется. За это время антибот привыкает к адресу, скоринг растет, и запросы проходят без капчи.

```python

import requests

from itertools import cycle

proxy_list = [

"http://user:pass@proxy.lexic.ml:50001",

"http://user:pass@proxy.lexic.ml:50002",

"http://user:pass@proxy.lexic.ml:50003",

]

proxy_pool = cycle(proxy_list)

def get_price(sku):

proxy = next(proxy_pool)

session = requests.Session()

session.proxies = {"http": proxy, "https": proxy}

response = session.get(

f"https://www.wildberries.ru/catalog/{sku}/detail.aspx",

headers={"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"},

timeout=15

)

if response.status_code == 200:

parse price from HTML

return extract_price(response.text)

return None

```

Результат: 10 000 SKU, проверка каждые 15 минут, 96 000 запросов в сутки. Блокировок — ноль за 30 дней работы.

Почему дата-центры проигрывают

Дата-центровые прокси дешевле — \$1-3 за гигабайт против \$5-15 у мобильных. Но экономия иллюзорна. Посчитаем:

| Тип прокси | Цена за 1 ГБ | Выживаемость IP | Капча на 1000 запросов | Стоимость 10 000 запросов |

|------------|--------------|-----------------|------------------------|---------------------------|

| Дата-центр | \$1.5 | 2-24 часа | 150-300 | \$3 + 2 часа ручной работы |

| Мобильный | \$8 | 3-14 дней | 0-10 | \$10 + 0 часов ручной работы |

Капча — это не только потеря времени. Это деградация доверия к IP. После 3-5 капч адрес уходит в черный список даже у мобильных операторов.

Технические детали мобильных прокси

Мобильный IP-пул строится на шлюзах операторов. Каждый шлюз обслуживает тысячи абонентов, и у него есть свой диапазон портов. Прокси-сервис подключается к шлюзу через специальное API и получает доступ к IP абонентов.

Особенность: мобильные IP имеют MTU 1400-1420 байт вместо стандартных 1500. Это связано с особенностями туннелирования в сетях 4G/LTE. Для HTTP-запросов это не критично, но для WebSocket или длинных POST-запросов может вызвать фрагментацию.

Еще нюанс: задержки на мобильных IP выше — 30-80 мс против 10-20 мс у дата-центров. Это приходится учитывать при настройке таймаутов. Стандартный timeout в 10 секунд может не хватить для загрузки тяжелых страниц.

Настройка прокси-цепочек

Оптимальная схема — цепочка "мобильный прокси → локальный кэш → парсер". Мобильный IP — входная точка, локальный кэш снижает нагрузку, парсер обрабатывает данные.

```nginx

http {

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=wb_cache:10m max_size=1g inactive=60m;

server {

listen 8080;

location / {

proxy_pass http://backend;

proxy_cache wb_cache;

proxy_cache_valid 200 5m;

proxy_cache_key "\$scheme\$request_uri";

proxy_set_header X-Real-IP \$remote_addr;

}

}

}

```

Кэширование на 5 минут снижает количество запросов к маркетплейсу в 3-5 раз. Это прямо влияет на срок жизни IP — меньше запросов, ниже риск бана.

Сравнение провайдеров мобильных прокси

Рынок мобильных прокси неоднороден. Крупные игроки вроде Bright Data и Oxylabs предлагают стабильные пулы, но с наценкой за бренд. Мелкие сервисы дешевле, но качество IP непредсказуемо.

При выборе обращайте внимание на:

- Размер пула: меньше 100 000 IP — несерьезно

- Географию: нужны IP конкретного региона или всей страны

- Скорость ротации: от 1 секунды до 24 часов

- Поддержку HTTP/HTTPS и SOCKS5

- Наличие sticky-сессий

Хороший вариант — сервисы, которые работают напрямую с операторами связи, а не арендуют пулы у других прокси-провайдеров. Это дает контроль над качеством IP и возможность оперативно менять подсети.

Ошибки при работе с мобильными IP

Первая ошибка — использовать один IP для всего. Даже мобильный адрес загнется, если с него долбить 24/7 без перерыва. Нужен пул хотя бы из 20-30 IP и разумная ротация.

Вторая ошибка — игнорировать поведенческие факторы. Мобильный IP не спасает, если запросы идут как из пулемета. Добавляйте случайные задержки, эмулируйте скроллинг, клики, наведение мыши.

Третья ошибка — не следить за ошибками. HTTP 403, 429, 503 — это сигналы. Если антибот начал отдавать капчу — снижайте темп, меняйте паттерны, дайте IP "остыть" на несколько часов.

```python

import logging

from tenacity import retry, stop_after_attempt, wait_exponential

logging.basicConfig(level=logging.INFO)

logger = logging.getLogger(__name__)

@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=60))

def safe_request(url, proxies, headers):

response = requests.get(url, proxies=proxies, headers=headers, timeout=30)

if response.status_code == 429:

logger.warning(f"Rate limited: {response.status_code}")

raise Exception("Rate limited")

if response.status_code == 403:

logger.error(f"Blocked: {response.status_code}")

raise Exception("Blocked")

return response

```

Итоги

Мобильные IP — не панацея, но они дают на порядок больше времени для парсинга. Дата-центр сгорает за часы, мобильный живет дни. При правильной настройке ротации и поведенческих паттернов — недели.

На практике связка "мобильные резидентные прокси + headless-браузер + кэширование" решает 95% задач парсинга Wildberries и Ozon. Остальные 5% — это экзотика вроде обхода капчи через сервисы распознавания или использование официальных API с расширенными лимитами.

Начинайте с малого — 10-20 мобильных IP, простой парсер на Python, разумные тайминги. Через неделю увидите, как живет ваш пул, какие паттерны вызывают подозрения, что работает лучше. И только потом масштабируйтесь.

✔️Купить прокси