CAPSOLVER
Блог
Как решить проблему reCAPTCHA с помощью Python и Selenium

Как решить проблему reCAPTCHA с помощью Python и Selenium

Logo of CapSolver

Nikolai Smirnov

Software Development Lead

25-Jul-2024

CAPTCHA стала важной линией защиты в нашей повседневной онлайн-деятельности. Будь то вход в аккаунт, отправка формы или совершение онлайн-платежа, CAPTCHA работает за кулисами, чтобы обеспечить нашу безопасность. Однако CAPTCHA иногда может стать препятствием для автоматизации, затрудняя прогресс в автоматизированном тестировании, сборе данных и эффективности. Так как же обойти эти сложные проблемы CAPTCHA законным и разумным способом? В этой статье мы рассмотрим, как решить reCAPTCHA с помощью Python и Selenium, предоставляя разработчикам и специалистам по данным эффективный путь к решению.

Что такое reCAPTCHA?

reCAPTCHA - это служба безопасности, разработанная Google для защиты веб-сайтов от спама и злоупотреблений. Она различает человеческих пользователей и автоматизированных ботов, обеспечивая выполнение таких взаимодействий, как отправка форм, создание аккаунтов и попытки входа в систему, реальными людьми. reCAPTCHA использует различные задачи для проверки подлинности пользователя, начиная от простых флажков и заканчивая сложным распознаванием изображений.

Устали от постоянных неудач при попытке полностью решить раздражающую капчу? Откройте для себя беспроблемное автоматическое решение капчи с помощью технологии автоматической разблокировки веб-страниц CapSolver, работающей на основе ИИ!

Получите свой Бонусный код для лучших решений капчи; CapSolver: WEBS. После его активации вы будете получать дополнительный бонус 5% после каждого пополнения счета, без ограничений.

Типы reCAPTCHA

  1. reCAPTCHA v2 (Флажок): Пользователям предлагается флажок с надписью "Я не робот". При нажатии на флажок пользователям может быть предложено решить задачу на основе изображения, если система подозревает, что они могут быть ботом.

  2. reCAPTCHA v2 (Невидимая): Эта версия не показывает видимого флажка. Она работает в фоновом режиме и запускает проверку только при обнаружении подозрительной активности.

  3. reCAPTCHA v3: В отличие от предыдущих версий, reCAPTCHA v3 не прерывает пользователя проверками. Вместо этого она присваивает оценку на основе поведения пользователя, позволяя администраторам веб-сайтов определять необходимые действия.

  4. reCAPTCHA Enterprise: Более продвинутая версия, разработанная для крупномасштабного бизнеса, обеспечивающая повышенную безопасность и настраиваемость.

Зачем решать reCAPTCHA?

Решение reCAPTCHA необходимо в определенных законных сценариях:

  1. Автоматизированное тестирование: Разработчикам и тестировщикам может потребоваться решение reCAPTCHA для автоматизации тестирования своих веб-приложений.
  2. Сбор данных: При сборе собственных данных или выполнении задач на сайтах, где у вас есть разрешение, решение reCAPTCHA может быть критически важным.
  3. Доступность: Автоматизация повторяющихся задач для пользователей с ограниченными возможностями или предоставление альтернативных методов доступа может потребовать решения reCAPTCHA.
  4. Эффективность: Автоматизация взаимодействий на веб-сайтах, использующих reCAPTCHA, может значительно повысить производительность и эффективность.

Как решить reCAPTCHA с помощью CapSolver

reCAPTCHA может создавать множество препятствий для законных задач автоматизации, таких как сбор данных, автоматизация тестирования и так далее. Поэтому для решения этих проблем раз и навсегда разработчикам рекомендуется использовать сторонний сервис решения, такой как CapSolver, который автоматически решает многие типы проблем CAPTCHA и помогает разработчикам преодолеть эти препятствия, чтобы задача выполнялась без проблем.

1. Предварительные требования

  • Определите целевой сайт как использующий reCAPTCHA
    Обычно вы можете видеть очевидные признаки на странице

В логах запросов вы также увидите https://www.google.com/recaptcha****

  • Получите ключ сайта
    Для V2 и V3 вы можете искать запрос /recaptcha/api2/reload?k=6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf в логах запросов браузера, где k= - это значение ключа, которое нам нужно

  • Различайте V2 и V3
    V2 и V3 имеют разные методы обработки. V2 требует распознавания изображений для выбора ответов, в то время как V3 относительно ненавязчива; Однако V3 требует предоставления Action во время проверки. На основе ранее полученного значения ключа, поищите на странице ответа, и вы найдете значение Action на странице

  • Вызовите сервис CapSolver

2. Различение версий reCAPTCHA

  • В логах запросов браузера вы можете видеть, что для V2 после запроса /recaptcha/api2/reload обычно требуется запрос /recaptcha/api2/userverify для получения токена прохождения;
  • Для V3 запрос /recaptcha/api2/reload может получить токен прохождения напрямую

3. Полный пример вызова API CapSolver

  • Python reCAPTCHA V2
python Copy
# pip install requests
import requests
import time

# TODO: установите вашу конфигурацию
api_key = "ВАШ_API_КЛЮЧ"  # ваш api ключ от capsolver
site_key = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"  # ключ сайта вашего целевого сайта
site_url = "https://www.google.com/recaptcha/api2/demo"  # url страницы вашего целевого сайта

# site_key = "6LelzS8UAAAAAGSL60ADV5rcEtK0x0lRsHmrtm62"
# site_url = "https://mybaragar.com/index.cfm?event=page.SchoolLocatorPublic&DistrictCode=BC45"


def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'ReCaptchaV2TaskProxyLess',
            "websiteKey": site_key,
            "websiteURL": site_url
        }
    }
    res = requests.post("https://api.capsolver.com/createTask", json=payload)
    resp = res.json()
    task_id = resp.get("taskId")
    if not task_id:
        print("Не удалось создать задачу:", res.text)
        return
    print(f"Получен taskId: {task_id} / Получение результата...")

    while True:
        time.sleep(3)  # задержка
        payload = {"clientKey": api_key, "taskId": task_id}
        res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
        resp = res.json()
        status = resp.get("status")
        if status == "ready":
            return resp.get("solution", {}).get('gRecaptchaResponse')
        if status == "failed" or resp.get("errorId"):
            print("Решение не удалось! ответ:", res.text)
            return


token = capsolver()
print(token)
  • Python reCAPTCHA V3
python Copy
# pip install requests
import requests
import time

# TODO: установите вашу конфигурацию
api_key = "ВАШ_API_КЛЮЧ"  # ваш api ключ от capsolver

site_key = "6LcR_okUAAAAAPYrPe-HK_0RULO1aZM15ENyM-Mf"  # ключ сайта вашего целевого сайта
site_url = "https://antcpt.com/score_detector/"  # url страницы вашего целевого сайта


def capsolver():
    payload = {
        "clientKey": api_key,
        "task": {
            "type": 'ReCaptchaV3TaskProxyLess',
            "websiteKey": site_key,
            "websiteURL": site_url,
            "pageAction": "homepage",
        }
    }
    res = requests.post("https://api.capsolver.com/createTask", json=payload)
    resp = res.json()
    task_id = resp.get("taskId")
    if not task_id:
        print("Не удалось создать задачу:", res.text)
        return
    print(f"Получен taskId: {task_id} / Получение результата...")

    while True:
        time.sleep(1)  # задержка
        payload = {"clientKey": api_key, "taskId": task_id}
        res = requests.post("https://api.capsolver.com/getTaskResult", json=payload)
        resp = res.json()
        status = resp.get("status")
        if status == "ready":
            return resp.get("solution", {}).get('gRecaptchaResponse')
        if status == "failed" or resp.get("errorId"):
            print("Решение не удалось! ответ:", res.text)
            return

# проверка оценки
def score_detector(token):
    headers = {
        "accept": "application/json, text/javascript, */*; q=0.01",
        "accept-language": "fr-CH,fr;q=0.9",
        "content-type": "application/json",
        "origin": "https://antcpt.com",
        "priority": "u=1, i",
        "referer": "https://antcpt.com/score_detector/",
        "sec-ch-ua": "\"Not/A)Brand\";v=\"8\", \"Chromium\";v=\"126\", \"Google Chrome\";v=\"126\"",
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": "\"macOS\"",
        "sec-fetch-dest": "empty",
        "sec-fetch-mode": "cors",
        "sec-fetch-site": "same-origin",
        "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36",
        "x-requested-with": "XMLHttpRequest"
    }
    url = "https://antcpt.com/score_detector/verify.php"
    data = {
        "g-recaptcha-response": token
    }
    data = json.dumps(data, separators=(',', ':'))
    response = requests.post(url, headers=headers, data=data)

    print(response.json())
    print(response)

token = capsolver()
print(token)

...
...
{
    'success': True, 
    'challenge_ts': '2024-07-19T10:50:56Z', 
    'hostname': 'antcpt.com', 
    'score': 0.7, 
    'action': 'homepage'
}

Заключение

Решение reCAPTCHA с использованием Python, Selenium и сервисов, таких как CapSolver, предлагает эффективное решение для законных задач автоматизации. Этот подход упрощает такие процессы, как автоматизированное тестирование, сбор данных и улучшение доступности, значительно повышая эффективность.

Ключевые моменты, которые следует помнить:

  1. Понимайте различные типы reCAPTCHA и их механизмы.
    Правильно идентифицируйте версии reCAPTCHA и получайте необходимые ключи сайта.
  2. Используйте сторонние сервисы такие как CapSolverдля упрощения процесса
  3. Используйте предоставленные скрипты Python в качестве отправной точки для ваших конкретных потребностей.

Хотя эти методы мощные, всегда используйте их ответственно и в соответствии с условиями использования веб-сайта. По мере развития веб-безопасности, поддержание актуальности с последними методами решения CAPTCHA будет иметь решающее значение для поддержания эффективных процессов автоматизации.

Дисклеймер о соблюдении: Информация, представленная в этом блоге, предназначена только для справочных целей. CapSolver обязуется соблюдать все применимые законы и нормы. Использование сети CapSolver для незаконной, мошеннической или злоупотребляющей деятельности строго запрещено и будет расследовано. Наши решения для распознавания капчи улучшают пользовательский опыт, обеспечивая 100% соблюдение при помощи в решении трудностей с капчей в процессе сбора общедоступных данных. Мы призываем к ответственному использованию наших услуг. Для получения дополнительной информации, пожалуйста, посетите наши Условия обслуживания и Политику конфиденциальности.

Ещеe

Какой лучший решатель reCAPTCHA v2 и v3 при веб-скрапинге в 2025 году
Что является лучшим решателем reCAPTCHA v2 и v3 при веб-скрапинге в 2025 году

В 2025 году, с повышением сложности антибот-систем, поиск надежных решателей reCAPTCHA стал критическим для успешного извлечения данных.

reCAPTCHA
Logo of CapSolver

Nikolai Smirnov

17-Jan-2025

Решение reCAPTCHA с помощью AI-распознавания в 2025 году
Решение reCAPTCHA с помощью AI-распознавания в 2025 году

Исследуйте, как ИИ преобразует процесс решения reCAPTCHA, решения CapSolver и меняющийся ландшафт безопасности CAPTCHA в 2025 году.

reCAPTCHA
Logo of CapSolver

Nikolai Smirnov

11-Nov-2024

Решение reCAPTCHA с помощью Python, Java и C++
Решение reCAPTCHA с использованием Python, Java и C++

Как успешно решать reCAPTCHA с помощью трех мощных языков программирования: Python, Java и C++ в одном блоге? Давай!

reCAPTCHA
Logo of CapSolver

Nikolai Smirnov

25-Oct-2024

Как решать reCAPTCHA v2 с помощью Rust
Как решить reCAPTCHA v2 с помощью Rust

Узнайте, как решать reCaptcha v2 с помощью Rust и API Capsolver. Это руководство охватывает как методы с прокси, так и без прокси, предоставляя пошаговые инструкции и примеры кода для интеграции решения reCaptcha v2 в ваши приложения Rust.

reCAPTCHA
Logo of CapSolver

Nikolai Smirnov

17-Oct-2024

Руководство по решению reCAPTCHA v3 с высокими баллами на Python
Руководство по решению reCAPTCHA v3 с высокими баллами на Python

Это руководство проведет вас через эффективные стратегии и приемы Python для решения reCAPTCHA v3 с высокими баллами, гарантируя бесперебойную работу ваших задач автоматизации.

reCAPTCHA
Logo of CapSolver

Nikolai Smirnov

17-Sep-2024

Как интегрировать решения reCAPTCHA v2 в Python для извлечения данных
Как интегрировать решения reCAPTCHA v2 в Python для извлечения данных

Узнайте, как интегрировать решения reCAPTCHA v2 в Python для беспроблемного извлечения данных. Изучите версии reCAPTCHA, разберитесь в извлечении данных и следуйте простому примеру с использованием Capsolver для автоматизации решения задач reCAPTCHA v2.

reCAPTCHA
Logo of CapSolver

Nikolai Smirnov

10-Sep-2024