Scarnox · Blog

Как найти sitekey капчи на любой странице (4 способа)

Каждое решение капчи начинается с sitekey — публичного идентификатора, который сайт зарегистрировал у провайдера капчи. Браузер его видит, значит видите и вы. Для PopularCaptcha sitekey — это UUID, например a5f74b19-9e45-40e0-b45d-47ff91b7a6c2. Другие провайдеры используют другие форматы. Ключи Google reCAPTCHA, например, начинаются с 6L. Вот четыре места, где его искать, от самого простого к самому надёжному.

Scarnox решает PopularCaptcha сегодня. Способ поиска sitekey одинаков для любой капчи, поэтому эти методы помогут и при планировании другого типа. Остальные типы, такие как reCAPTCHA и Cloudflare Turnstile, скоро появятся.

1. Атрибут data-sitekey

Откройте DevTools (F12), перейдите во вкладку Elements (Элементы), нажмите Ctrl+F и найдите data-sitekey. Большинство виджетов хранят ключ в таком атрибуте:

<div class="h-captcha" data-sitekey="a5f74b19-9e45-40e0-b45d-47ff91b7a6c2"></div>

Если нашли здесь, всё готово. Скопируйте значение и переходите к решению.

2. Вкладка Network

Если виджет отрисовывается JavaScript, атрибут может никогда не появиться в HTML. Откройте Network (Сеть), перезагрузите страницу и отфильтруйте запрос конфигурации виджета. Для PopularCaptcha такой запрос обычно называется checksiteconfig. Sitekey — один из его query-параметров:

.../checksiteconfig?v=...&host=example.com&sitekey=a5f74b19-...

Фильтр по слову sitekey в URL запроса тоже работает, если на тестируемом сайте имя другое.

3. URL iframe

Сама проверка — это iframe, который отдаёт провайдер капчи. Его src содержит sitekey как параметр. Щёлкните правой кнопкой по виджету, выберите Inspect (Просмотреть код) и прочитайте значение из адреса iframe. Это самый надёжный метод, когда страница скрывает атрибут от основного документа.

4. Невидимые виджеты

У невидимого виджета нет чекбокса. Сайт вызывает функцию render() или execute() виджета из собственного кода, а sitekey передаётся как аргумент. Найдите его в JavaScript страницы: откройте панель Sources (Исходники) и нажмите Ctrl+Shift+F, затем ищите sitekey. Невидимые sitekey при решении требуют флага невидимости. См. решение невидимых капч.

Чтение sitekey из скрипта

Если атрибут есть в исходном HTML, скрипт может прочитать его без браузера:

import re
import requests

html = requests.get("https://example.com/signup", timeout=30).text
m = re.search(r'data-sitekey="([^"]+)"', html)
print(m.group(1) if m else "no data-sitekey in the raw HTML")

Если вывод пустой, виджет отрисовывается JavaScript. Используйте настоящий браузер, как в описанном выше способе с вкладкой Network. Загружайте только страницы, которые вам разрешено автоматизировать, и держите низкую частоту запросов.

Какой URL указать

Отправляйте в site_url URL страницы, на которой находится виджет. Важнее всего хост, поэтому для виджета регистрации правильное значение — https://example.com/signup. Полный запрос для PopularCaptcha выглядит так:

{
  "captcha_type": "PopularCaptchaTaskProxyless",
  "site_key": "a5f74b19-9e45-40e0-b45d-47ff91b7a6c2",
  "site_url": "https://example.com/signup"
}

Отправьте его на https://api.scarnox.com/api/tasks/create с вашим ключом в заголовке Authorization: Bearer. Вызов блокируется до готовности токена, поэтому отдельного запроса для проверки результата не нужно.

Частые проблемы

Проверка, что это нужный sitekey

На странице может быть больше одного sitekey. Аналитические виджеты, формы комментариев и блоки подписки иногда добавляют свои. Прежде чем решать, убедитесь, что sitekey принадлежит той форме, которую вы автоматизируете. Помогут три быстрые проверки:

Ключи могут меняться при переразвёртывании сайта. Если ключ, который работал вчера, перестал давать принятые токены, перечитайте страницу, прежде чем менять что-либо ещё. Свежее чтение ничего не стоит, и оно исключает самую частую причину внезапного сбоя.

Страницы, которые загружают виджет только после клика, требуют ещё одного шага. Откройте страницу, выполните клик, который показывает виджет, и только потом читайте sitekey. Если читать страницу до клика, вернётся пустой результат, и это похоже на отсутствие виджета, хотя на самом деле проблема в тайминге. Ждите появления элемента, подходящего под [data-sitekey], а не задавайте фиксированную паузу.

Что дальше

Начните с пробного баланса, карта не нужна: создайте аккаунт и проверьте свой первый sitekey.