Looking for international version of our service? Go to 2captcha.com

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

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

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

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

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

Введение

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

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

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

Для обхода 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.rucaptcha.com/reportIncorrect",
    json={"clientKey": API_KEY, "taskId": TASK_ID}
)

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

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

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

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

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