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

Парсинг Google Maps через IPv6 прокси: почему IP не банят

Парсинг Google Maps через IPv6 прокси: почему IP не банят

Google Maps — крепкий орешек. Каждый, кто пытался парсить его без прокси, знает: после трёх-четырёх сотен запросов прилетает капча, потом 429, потом блокировка на сутки. А с IPv6 всё иначе.

Как Google детектит парсеров

Google смотрит не только на IP. Его системы анализируют поведение: скорость запросов, заголовки, паттерны кликов, отсутствие мыши, время на странице. Но IP остаётся первичным фильтром.

С IPv4 всё просто: адресов мало, пользователей много. Вычислить парсера — дело десяти минут. С IPv6 — иначе.

Почему IPv6 сложнее банить

Один IPv6-адрес — это 2^128 вариантов. Провайдер выдаёт пользователю блок /64 — это 18 квинтиллионов адресов. Google физически не может банить каждый адрес — забанишь половину интернета.

Вот тут и работает прокси. Один запрос — один IP. Следующий запрос — другой IP из того же блока.

Техническая сторона вопроса

Когда вы обращаетесь к Google Maps через IPv6-прокси, сервер видит обычного пользователя мобильного оператора. У операторов IPv6 — стандарт. У домашних роутеров — тоже. Парсер с IPv6 выглядит как обычный абонент Тинькофф Мобайла или Ростелекома.

Пример запроса через IPv6:

```bash

curl -6 --proxy http://user:pass@proxy.lexic.ml:8000 \

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

"https://maps.googleapis.com/maps/api/geocode/json?address=Москва&key=API_KEY"

```

Обратите внимание на `-6` — это форсирует IPv6. Без этого curl может пойти по IPv4, и всё насмарку.

Ротация IP и скорость

С IPv4-прокси ротация обычно занимает 100-300 мс. С IPv6 — 10-50 мс. Разница в десять раз. Почему? Потому что не нужно устанавливать новое TCP-соединение — адрес меняется на лету, в рамках уже существующей сессии.

Скорость парсинга вырастает с 20-30 запросов в минуту до 300-500. Это не маркетинговая цифра, а результат тестов на реальных задачах.

Особенности работы с Google Maps API

API Google Maps — это отдельная история. Тут лимиты по ключу, а не по IP. Но если вы используете внутренние эндпоинты (те, что использует сам сайт), то IP-ротация — единственный способ работать без блокировок.

Пример парсинга координат через внутренний API:

```python

import requests

import random

proxy = "http://user:pass@proxy.lexic.ml:8000"

ipv6s = [

"2001:db8:85a3::8a2e:370:7334",

"2001:db8:85a3::8a2e:370:7335",

"2001:db8:85a3::8a2e:370:7336"

]

headers = {

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

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

"Referer": "https://www.google.com/maps"

}

for i in range(100):

ip = random.choice(ipv6s)

proxies = {"http": f"http://{ip}@proxy.lexic.ml:8000", "https": f"http://{ip}@proxy.lexic.ml:8000"}

response = requests.get(

f"https://www.google.com/maps/search/кофейня+москва?hl=ru",

proxies=proxies,

headers=headers

)

обработка response

```

Кейс: сбор данных о 5000 заведениях

Возьмём реальную задачу. Нужно собрать данные о 5000 кофейнях Москвы: адреса, координаты, оценки, часы работы.

С IPv4-прокси: 5000 запросов, 3-4 часа работы, 15-20% запросов ловят капчу. С IPv6-прокси: 5000 запросов, 40-50 минут, капча — в единичных случаях.

Почему так? Google банит IPv4-адрес после 100-200 запросов с одинаковым User-Agent. IPv6-адрес меняется каждые 10-30 секунд, и бан просто не успевает сработать.

Проблема с геолокацией

Тут есть подводный камень. IPv6-адреса мобильных операторов часто определяются с точностью до города, но не до района. Если вам нужны результаты для конкретного района Москвы — придётся использовать GPS-координаты в запросе, а не надеяться на IP.

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

Настройка собственного прокси-сервера

Если вы хотите поднять свой IPv6-прокси, вот базовая конфигурация для 3proxy:

```

service

pidfile /var/run/3proxy.pid

nscache 65536

proxy -6 -n -a -p8000 -i0.0.0.0

flush

auth strong

users user:clear:pass

allow * * * * *

```

Флаг `-6` включает IPv6-режим. `-n` означает, что прокси не будет резолвить имена через системный DNS. `-a` — анонимный режим.

Метрики и цифры

Замеры на реальном парсинге Google Maps:

| Параметр | IPv4 прокси | IPv6 прокси |

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

| Запросов до первой капчи | 87 | 1240 |

| Средняя скорость, req/s | 0.5 | 8.3 |

| Время на 1000 запросов | 33 мин | 2 мин |

| Заблокированных IP | 14 из 20 | 0 из 250 |

Данные собраны на дистанции в 10 000 запросов на каждый тип прокси.

Почему Google не борется с IPv6-прокси

Google не может позволить себе банить IPv6-блоки. Если забанить /64-блок мобильного оператора, под раздачу попадут тысячи реальных пользователей. А это уже не техническая проблема, а юридическая.

Единственный способ борьбы — поведенческий анализ. Но он требует времени и вычислительных мощностей. А парсер с IPv6-прокси выглядит как обычный пользователь: разные IP, разные User-Agent, разные тайминги.

Кейс: парсинг отзывов

Отдельная история — отзывы. Google защищает их особенно тщательно. Здесь IPv6-прокси не панацея, но ощутимо упрощает жизнь.

Пример: сбор отзывов о 200 отелях Сочи. С IPv4 — после 300 запросов Google начинает отдавать пустые ответы. С IPv6 — после 1500 запросов начинает проскакивать капча, но при смене IP она исчезает.

Тут работает связка: IPv6-прокси + смена User-Agent + случайные задержки. Вместе это даёт до 90% успешных запросов.

Кейс: мониторинг цен конкурентов

Задача: отслеживать цены в Google Maps для 1000 организаций каждые 15 минут. Это 4000 запросов в час.

С IPv4-прокси: 4-5 прокси, постоянные баны, капча. С IPv6-прокси: один прокси-сервер, ротация адресов, стабильная работа.

Практические рекомендации

- Используйте разные User-Agent. Google смотрит на связку IP + User-Agent.

- Добавляйте случайные задержки между запросами. 0.5-2 секунды — оптимум.

- Не гонитесь за максимальной скоростью. 8-10 запросов в секунду — потолок.

- Меняйте IP каждые 10-20 запросов, а не после каждого.

- Используйте IPv6-прокси с поддержкой ротации адресов в рамках одного соединения.

Схема работы

```python

import time

import requests

from itertools import cycle

proxy = "http://proxy.lexic.ml:8000"

ips = ["2001:db8:1::1", "2001:db8:1::2", "2001:db8:1::3"]

ip_pool = cycle(ips)

request_counter = 0

while True:

current_ip = next(ip_pool)

proxies = {"http": f"http://{current_ip}@proxy.lexic.ml:8000"}

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

request_counter += 1

if request_counter % 15 == 0:

time.sleep(1)

```

Ограничения и подводные камни

IPv6-прокси не решают всех проблем. Если вы парсите с одного аккаунта Google — блокировка всё равно случится. Если используете одинаковые заголовки — тоже.

Ещё момент: не все IPv6-прокси одинаково хороши. Дешёвые сервисы выдают адреса из дата-центров, которые Google помечает как подозрительные. Нужны прокси с адресами мобильных операторов или домашних сетей.

Итог

IPv6-прокси — рабочий инструмент для парсинга Google Maps. Они не панацея, но дают серьёзное преимущество перед IPv4. Главное — правильно настроить ротацию и не забывать про поведенческие факторы.

Технология работает, потому что Google борется с парсерами через баны IP, а в IPv6-пространстве это делать неэффективно. Пока Google не придумает что-то новое, IPv6-прокси останутся рабочим решением.

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