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 є одним з його параметрів запиту:

.../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 до нього пасує?

Надсилайте URL сторінки, на якій знаходиться віджет, як site_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.