Логотип «2Captcha»Перейти на главную страницу
Туториалы по обходу капчи

Эта статья была полезной?

Как обойти reCAPTCHA v3 на Waze

Грегори Фишер
Грегори Фишер

Технический специалист

Введение

Waze — популярное приложение для навигации и отслеживания дорожной обстановки. Его интерактивная карта (Live Map) использует reCAPTCHA v3 для защиты API-эндпоинтов и предотвращения автоматизированных запросов. В отличие от предыдущих версий, reCAPTCHA v3 работает невидимо для пользователя и оценивает поведение на основе балла (score) от 0.0 до 1.0.

В этом руководстве мы разберем, как получить необходимые параметры, решить капчу через API 2Captcha и корректно интегрировать токен в ваш скрипт.

Параметры задачи

Для обхода reCAPTCHA v3 на Waze используется тип задачи RecaptchaV3TaskProxyless.

json Copy
{
    "clientKey": "YOUR_API_KEY",
    "task": {
        "type": "RecaptchaV3TaskProxyless",
        "websiteURL": "https://www.waze.com/ru/live-map",
        "websiteKey": "6Lf4WdUqAAAAAEUYUvzyLYIkO3PoFAqi8ZHGiDLW",
        "pageAction": "api",
        "minScore": 0.3,
        "apiDomain": "www.recaptcha.net",
        "isEnterprise": true
    }
}

Как найти параметры

websiteURL

Это полный адрес страницы, на которой инициируется проверка. Для Waze это может быть главная страница карты (https://www.waze.com/live-map) или её локализованная версия (https://www.waze.com/ru/live-map).

websiteKey (SiteKey)

  1. Откройте страницу с картой и нажмите F12 (DevTools).
  2. Перейдите на вкладку Elements и нажмите Ctrl+F для поиска.
  3. Введите 6Lf4 или recaptcha и скопируйте значение атрибута data-sitekey.
  4. Альтернативно, на вкладке Network можно найти запрос к google.com/recaptcha или recaptcha.net и посмотреть параметр k.

pageAction

Этот параметр указывает, какое именно действие на сайте вызывает капчу.

  1. На вкладке Sources или в консоли DevTools найдите вызов grecaptcha.execute.
  2. Второй аргумент этого вызова обычно содержит объект с полем action. Для Waze при загрузке карты это часто значение api или live_map.

apiDomain

Посмотрите, с какого домена загружается скрипт капчи. Если в URL скрипта указан recaptcha.net (например, https://www.recaptcha.net/recaptcha/enterprise.js), передавайте www.recaptcha.net. Если используется стандартный домен Google, укажите www.google.com.

isEnterprise

Проверьте URL загружаемого скрипта. Если он содержит слово enterprise (например, recaptcha/enterprise.js), значит используется корпоративная версия, и этот параметр должен быть true.

Особенности reCAPTCHA v3 и специфика Waze

Решение reCAPTCHA v3 — сложная задача, так как она предъявляет строгие требования к значению score. Успех зависит от совокупности факторов: корректных параметров, цифровых отпечатков браузера и поведения сессии.

Однако, как показала практика, наши токены с высоким score успешно проходят капчу на этом сайте. Главное — использовать правильные параметры (особенно pageAction и apiDomain).

Почему minScore=0.3, а не 0.9

reCAPTCHA v3 возвращает score от 0.0 до 1.0, где:

  • 0.9-1.0 — очень вероятно, что это человек
  • 0.5-0.8 — возможно, человек
  • 0.0-0.4 — очень вероятно, что это бот

Многие разработчики ошибочно устанавливают minScore=0.9, ожидая "идеальный" токен. Но это приводит к проблемам:

  1. Долгое ожидание — сервису сложнее получить токен с таким высоким score.
  2. Блокировки — если сайт ожидает score 0.7, а вы передаете токен с score 0.95, это может выглядеть подозрительно.
  3. Лишние расходы — сервис может не найти решение с таким высоким score и вернуть ошибку.

Для Waze оптимальный minScore=0.3, потому что:

  • Сайт принимает токены с относительно низким score.
  • Быстрее находится решение.
  • Меньше вероятность блокировки из-за "слишком идеального" поведения.

Если сайт отклоняет токены с score 0.3, попробуйте увеличить до 0.5 или 0.7.

Как именно Waze ожидает токен

Waze использует reCAPTCHA v3 Enterprise для защиты своих API-эндпоинтов. Токен обычно передается в теле POST-запроса как параметр recaptcha_token или g-recaptcha-response.

Пример запроса к API Waze:

python Copy
import requests

token = "YOUR_RECAPTCHA_TOKEN"

headers = {
    'Content-Type': 'application/json',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
}

data = {
    'recaptcha_token': token,
    # другие параметры запроса
}

response = requests.post(
    'https://www.waze.com/row-rtserver/web/TGeoSearch',
    headers=headers,
    json=data
)

print(response.json())

Если вы используете Playwright/Selenium, токен можно передать через перехват запросов (как показано в примере ниже) или через выполнение JavaScript:

python Copy
await page.evaluate(f"""
    window.recaptchaToken = '{token}';
""")

Примеры кода

Python + requests (Получение токена)

Если вам нужно просто получить токен для последующей отправки на бэкенд Waze через API:

python Copy
import sys
import os
sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))

from twocaptcha import TwoCaptcha

api_key = os.getenv('APIKEY_2CAPTCHA', 'YOUR_API_KEY')
solver = TwoCaptcha(api_key)

try:
    result = solver.recaptcha(
        sitekey='6Lf4WdUqAAAAAEUYUvzyLYIkO3PoFAqi8ZHGiDLW',
        url='https://www.waze.com/ru/live-map',
        version='v3',
        action='api',
        min_score=0.3,
        domain='www.recaptcha.net',
        enterprise=1
    )
    print(f"Токен успешно получен: {result['code']}")
    
except Exception as e:
    print(f"Произошла ошибка: {e}")

Python + Playwright (Автоматизация браузера)

При автоматизации браузера токен reCAPTCHA v3 обычно передается напрямую в теле POST-запроса к API сайта или записывается в заголовок.

python Copy
import asyncio
from playwright.async_api import async_playwright
from twocaptcha import TwoCaptcha

API_KEY = 'YOUR_API_KEY'
SITE_KEY = '6Lf4WdUqAAAAAEUYUvzyLYIkO3PoFAqi8ZHGiDLW'
PAGE_URL = 'https://www.waze.com/ru/live-map'

async def solve_captcha():
    solver = TwoCaptcha(API_KEY)
    
    try:
        result = solver.recaptcha(
            sitekey=SITE_KEY,
            url=PAGE_URL,
            version='v3',
            action='api',
            min_score=0.3,
            domain='www.recaptcha.net',
            is_enterprise=True
        )
        token = result['code']
        print(f"Капча решена! Токен: {token}")
        
        async with async_playwright() as p:
            browser = await p.chromium.launch()
            context = await browser.new_context()
            page = await context.new_page()
            
            await page.goto(PAGE_URL)
            
            async def handle_route(route):
                request = route.request
                headers = request.headers
                headers['g-recaptcha-response'] = token
                await route.continue_(headers=headers)
            
            await page.route('**/api/**', handle_route)
            
            await page.reload()
            
            await asyncio.sleep(5)
            await browser.close()
            
    except Exception as e:
        print(f"Ошибка: {e}")

asyncio.run(solve_captcha())

Отчеты о правильности решения

Для reCAPTCHA v3 отправка отчетов критически важна. Если сайт отклонил токен, обязательно сообщите об этом через метод reportIncorrect. Это помогает сервису анализировать причины низкого score и возвращает вам средства. Если токен успешно прошел проверку, отправьте reportCorrect — это закрепляет положительную статистику и помогает поддерживать высокий уровень качества решений.

Отправить отчет можно через API:

python Copy
import requests

API_KEY = "YOUR_API_KEY"
TASK_ID = "123456789"

# Отчет о неверном решении
requests.post(
    "https://api.2captcha.com/reportIncorrect",
    json={"clientKey": API_KEY, "taskId": TASK_ID}
)

# Отчет о правильном решении
requests.post(
    "https://api.2captcha.com/reportCorrect",
    json={"clientKey": API_KEY, "taskId": TASK_ID}
)

Подробный гайд по отправке отчетов с примерами для разных языков: https://2captcha.com/h/how-to-submit-reports

Частые ошибки и решения

Ошибка / Проблема Причина Решение
ERROR_BAD_PARAMETERS Неверно указаны pageAction, apiDomain или isEnterprise Проверьте параметры в DevTools. Для Waze action часто равен api, а домен www.recaptcha.net
Токен получен, но сайт отклоняет запрос Сайт ожидает другой механизм передачи токена или score слишком низкий Убедитесь, что вы передаете токен в правильный заголовок или тело запроса. Проверьте правильность pageAction
ERROR_ZERO_BALANCE Недостаточно средств на балансе Пополните счет в личном кабинете 2Captcha
Iframe или запросы не найдены Waze загружает карту динамически Дождитесь полной загрузки страницы и появления сетевых запросов к API перед поиском параметров

Полезные ссылки