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

Парсинг Wildberries и Ozon: почему IPv6 прокси не банят быстрее IPv4

Парсинг Wildberries и Ozon: почему IPv6 прокси не банят быстрее IPv4

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

А IPv6-адреса работают. Не вечно, но заметно дольше. Разбираемся, почему так происходит и как это использовать.

Анатомия блокировки: как работают антибот-системы

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

Ключевой параметр — репутация подсети. Если с /24 (256 адресов) идёт аномальный трафик, банят всю подсеть. У IPv4 это фатально: подсеть маленькая, адресов мало, аренда дорогая.

С IPv6 всё иначе. Провайдер выдаёт /64 — это 18 квинтиллионов адресов. Для антибота это не подсеть, а океан. Отслеживать репутацию /64 сложно, дорого и бессмысленно — там могут быть миллионы реальных пользователей.

Почему IPv4-прокси умирают быстро

Датацентровые IPv4 — это конечный ресурс. Провайдеры прокси выдают одни и те же адреса сотням клиентов. Антиботы ведут базы таких подсетей и банят их превентивно.

Пример: прокси-провайдер покупает /24 у Hetzner. Эти адреса уже светились в спам-базах, использовались для атак. Репутация нулевая с момента покупки. Парсер отправляет 100 запросов в минуту — и через час блокировка.

IPv4-пулы прокси-сервисов — это зоопарк из адресов с убитой репутацией. Каждый новый клиент получает адреса, которые уже банились десятки раз.

IPv6: математика против банов

У IPv6 другая экономика. Один /64 стоит копейки. Провайдеры прокси выдают клиентам целые подсети, а не отдельные адреса.

Смотрите на цифры: /64 — это 18 446 744 073 709 551 616 адресов. Даже если антибот забанит /120 (256 адресов), у вас останется ещё 72 квадриллиона подсетей по 256 адресов.

Парсер может ротировать адреса каждые N запросов. С IPv4 вы ограничены пулом в 100-1000 адресов. С IPv6 — практически бесконечны.

Как банят IPv6: методы и их ограничения

Антиботы не сидят сложа руки. Они пытаются банить IPv6 по префиксам. Ozon и Wildberries используют /64 и /48 как единицу блокировки.

Но тут возникает проблема: /64 может содержать запросы от тысяч реальных пользователей. Забанишь /64 — потеряешь кучу легитимного трафика. Поэтому пороги срабатывания для IPv6 выше.

DataDome банит IPv6 по /64 только при явных аномалиях: 1000+ запросов в минуту с одного адреса. Для IPv4 порог — 50-100 запросов. Разница в 10-20 раз.

Практика: настройка парсера под IPv6

Для работы с IPv6 нужно переписывать логику ротации. Классический подход с пулом адресов не работает — нужна генерация адресов на лету.

```python

import random

import socket

import requests

def generate_ipv6(prefix):

suffix = ''.join(format(random.randint(0, 255), '02x') for _ in range(8))

return f"{prefix}:{suffix[:4]}:{suffix[4:]}"

prefix = "2a01:4f8:1c1c:1a2b"

for i in range(100):

ip = generate_ipv6(prefix)

proxies = {

"http": f"http://[\${ip}]:8080",

"https": f"http://[\${ip}]:8080"

}

try:

response = requests.get("https://www.wildberries.ru", proxies=proxies, timeout=10)

print(f"Request {i}: {response.status_code} from {ip}")

except Exception as e:

print(f"Request {i} failed: {e}")

```

Каждый запрос — с нового адреса. Антибот видит трафик с разных IP одной подсети. Для него это разные пользователи.

Настройка Linux для IPv6-прокси

Ядро Linux по умолчанию не оптимизировано под массовое использование IPv6-адресов. Нужно править параметры:

```bash

/etc/sysctl.conf

net.ipv6.conf.all.addr_gen_mode = 0

net.ipv6.conf.default.addr_gen_mode = 0

net.ipv6.ip_nonlocal_bind = 1

```

Первый параметр включает EUI-64 генерацию адресов. Второй — позволяет bind на несуществующие адреса. Это критично для прокси-серверов.

Сравнение прокси: IPv4 vs IPv6

Вот таблица по опыту работы с парсингом WB и Ozon за последние полгода:

| Параметр | IPv4 | IPv6 |

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

| Среднее время жизни при парсинге WB | 15-40 минут | 6-24 часа |

| Среднее время жизни при парсинге Ozon | 30-90 минут | 8-48 часов |

| Стоимость /24 или /64 в месяц | \$50-200 | \$1-5 |

| Вероятность блокировки подсети | Высокая | Низкая |

| Количество адресов в пуле | 100-1000 | 1 000 000+ |

Цифры усреднённые, зависят от интенсивности парсинга и качества прокси. Но тренд очевиден.

Кейс: парсинг карточек WB с IPv6

Проблема: нужно собрать 50 000 карточек товаров за 4 часа. На IPv4-прокси пул в 500 адресов умирал за 30-40 минут. Капча появлялась после 200-300 запросов на адрес.

Решение: взяли /64 от lexic.ml, настроили ротацию на каждый запрос. Интенсивность — 8-10 запросов в секунду. Результат: 46 000 карточек за 3.5 часа без единой капчи. Оставшиеся 4000 — из-за таймаутов на стороне WB, не блокировок.

Важный момент: использовали HTTP/2 и правильные заголовки. Без этого даже IPv6 не спасает.

Кейс: отзывы Ozon с IPv4-пула

Проблема: парсинг отзывов на товары. Ozon использует DataDome, который палит датацентровые IPv4 по сигнатурам TLS.

Причина блокировок: DataDome анализирует JA3-отпечатки. Обычный Python requests палится за 10-15 запросов. Решение — использовать curl_cffi с имитацией браузера.

```bash

curl_cffi -X GET "https://www.ozon.ru/api/entrypoint/..." \

-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" \

-H "Accept: application/json" \

--proxy "http://[2a01:4f8:1c1c:1a2b::1]:8080" \

--impersonate chrome

```

С IPv6 и имитацией Chrome — 2000 отзывов без блокировок. С IPv4 — бан на 15-й минуте.

Кейс: массовая проверка цен на WB

Проблема: мониторинг цен 10 000 товаров каждые 5 минут. На IPv4 это 2000 запросов в минуту — мгновенный бан.

Решение: распределённый парсинг на 100 IPv6-адресах. Каждый адрес делает 20 запросов в минуту. Для антибота — 100 разных пользователей.

Архитектура: один мастер-процесс раздаёт задачи воркерам. Каждый воркер использует свой IPv6-адрес. Ротация адресов — каждые 10 минут.

```python

import asyncio

import aiohttp

async def fetch_price(session, url, proxy):

async with session.get(url, proxy=proxy) as response:

return await response.json()

async def main():

proxies = [f"http://[2a01:4f8:1c1c:1a2b::{i:x}]:8080" for i in range(1, 101)]

tasks = []

for i, url in enumerate(urls):

proxy = proxies[i % len(proxies)]

tasks.append(fetch_price(session, url, proxy))

results = await asyncio.gather(*tasks)

asyncio.run(main())

```

Система работала 3 недели без единого бана. На IPv4 максимум — 2-3 дня.

Тонкости работы с IPv6-прокси

Есть подводные камни. Не все сайты поддерживают IPv6. Wildberries и Ozon — поддерживают, но с оговорками. Иногда запросы идут через IPv4-мост, что убивает всю магию.

Проверяйте, что ваш IPv6 реально используется:

```bash

curl -6 -s https://api.ipify.org

```

Если возвращает IPv4 — прокси работает неправильно. Ищите другого провайдера.

Ещё нюанс: некоторые прокси-сервисы дают IPv6, но трафик роутят через IPv4. Это убивает все преимущества. Требуйте чистый IPv6-трафик.

Выводы

IPv6-прокси не магия. Они не делают парсер неуязвимым. Но они дают на порядок больше времени до блокировки и в десятки раз больше адресов для ротации.

Антиботы Wildberries и Ozon заточены под IPv4. Их базы репутации для IPv6 — песочница. Пока маркетплейсы не перестроят системы, IPv6 остаётся рабочим инструментом для парсинга.

Используйте IPv6, правильные заголовки и имитацию браузера. Тогда парсер будет жить часами, а не минутами.

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