Scarnox · Blog

Як обійти капчу для легітимної автоматизації і тестування

Обійти капчу легітимно означає провести власну автоматизовану роботу повз виклик, не порушуючи правил сайту і не атакуючи його користувачів. На практиці це охоплює чотири випадки: автоматизацію процесу, яким ви володієте, тестування власного сайту, створення доступних інструментів і збір публічних даних з responsible-темпом. Найшвидший чесний шлях зазвичай полягає в тому, щоб взагалі не провокувати капчу. Коли уникнути її не вдається, солвер через API, наприклад Scarnox, може повернути токен, який очікує сторінка.

Цей посібник описує підходи в порядку, в якому їх варто пробувати, і позначає межі, яких не варто перетинати.

Почніть з питання, чому з'явилася капча

Капча — це сигнал. Сайт вирішив, що запит виглядає автоматизованим або ризикованим. Перш ніж намагатися пройти виклик, перевірте, що його спричинило:

Усунення причини часто прибирає капчу повністю, а це краще, ніж розв'язувати її при кожному запиті.

Спробуйте підходи, які уникають виклику

  1. Використовуйте офіційний API, якщо він є. Багато сайтів публікують дані через API з власними ключами та лімітами. Цей шлях швидший, стабільніший і явно дозволений.
  2. Сповільнюйтеся і розподіляйте запити. Додавайте затримки між запитами, обмежуйте паралельність і відступайте, коли отримуєте попередження. Стабільний темп у кілька запитів на хвилину сайт сприймає зовсім інакше, ніж сплеск із сотень.
  3. Зберігайте сесії. Повторно використовуйте cookie і стабільний профіль браузера протягом сесії, а не починайте з нуля на кожній сторінці. Посібник про browser fingerprinting пояснює, чому це важливо.
  4. Перевірте robots.txt і умови використання перед початком, а не після блокування. Дотримуйтесь того, чого просить сайт.

Використовуйте тестові ключі та тестові середовища

Якщо капча блокує ваше власне staging-середовище, не спрямовуйте тести на продакшн, щоб її обійти. Більшість провайдерів капчі, зокрема Google і Cloudflare, публікують тестові ключі для розробки. Ці ключі створюють дійсний токен без справжнього виклику і є правильним інструментом для автоматизованих тестів. Також можна попросити свою команду вимкнути капчу на staging-сервері. Посібник про капчу в автоматизованих тестах описує цю схему.

Розв'язуйте капчу через API, коли вона стоїть на шляху легітимної роботи

Деякі капчі все одно з'являтимуться у легітимних завданнях, навіть із правильним темпом. Наприклад, моніторинговий процес, що перевіряє портал вашого постачальника. У такому разі солвер через API — доречний інструмент.

Scarnox — це API для розв'язання капчі. Сьогодні єдиний чинний тип завдання — PopularCaptcha, proxyless. Ваш код надсилає sitekey і URL сторінки, а отримує токен, щоб відправити його разом із формою:

import requests

r = requests.post(
    "https://api.scarnox.com/api/tasks/create",
    headers={"Authorization": "Bearer scarnox_YOURAPIKEY"},
    json={
        "captcha_type": "PopularCaptchaTaskProxyless",
        "site_key": "10000000-ffff-ffff-ffff-000000000001",
        "site_url": "https://example.com/login",
    },
    timeout=185,
)
data = r.json()
token = data["solution"]["token"] if data.get("errorId") == 0 else None

Токен спливає приблизно за дві хвилини, тож відправте його одразу. Посібник з розв'язання капчі на Python містить повний приклад. Інші типи капчі, зокрема reCAPTCHA, Cloudflare Turnstile і Arkose, скоро з'являться. Доки вони не запрацюють, не розраховуйте, що солвер їх обробляє.

Доступність — теж легітимна причина

Капчі є бар'єром для людей, які користуються екранними читачами, перемикають пристрої або мають когнітивні чи зорові порушення. Якщо ви створюєте інструменти доступності або представляєте користувачів, які не можуть пройти виклик, першим кроком має бути прохання до власника сайту про доступну альтернативу. Багато сайтів таку пропонують. Автоматизація капчі не замінює цієї розмови.

Що не є легітимним

Деякі сценарії розв'язання капчі є недопустимими, якою б не була причина. Не використовуйте солвери чи будь-який обхід для:

Ці сценарії шкодять реальним людям, порушують умови сайтів і створюють серйозний юридичний ризик. Scarnox їх не підтримує, і цей посібник їх не охоплює.

Scrape responsibly

Якщо ваш обхід існує, щоб збирати публічні дані, пам'ятайте про такі речі:

Підсумок

Спершу уникайте капчі, усуваючи причину. Для тестування використовуйте тестові ключі. Для легітимних завдань, які все одно натрапляють на виклик, використовуйте солвер через API в межах чинних типів завдань. Не виходьте за межі, перелічені вище, і скрапайте з темпом, який сайт витримає.

Наступні кроки