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

Туториалы по обходу капчи

Как обойти текстовую капчу (буквенную капчу)

Как распознать, решить обойти текстовую капчу автоматически с помощью сервиса распознавания - пошаговое руководство

Обход текстовых CAPTCHA может быть сложной задачей для автоматизированных систем, но API 2Captcha предоставляет простое решение. Это руководство предлагает пошаговый обзор интеграции API сервиса решения капч для эффективного обхода текстовых CAPTCHA. Следуйте этим инструкциям, чтобы оптимизировать процесс и достичь наилучших результатов.

Текстовая капча и буквенная капча относятся к типу капчи, которая отображает искаженные символы или буквы, которые пользователь должен распознать и ввести, чтобы доказать, что он человек. Таким образом, по сути, это один и тот же тип капчи, просто описанный немного разными способами.


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

Перед началом убедитесь, что у вас есть:

  1. API-ключ 2Captcha: Зарегистрируйтесь на 2Captcha и получите свой API-ключ на панели управления.
  2. HTTP-клиент: Используйте инструмент, такой как cURL, Postman, или библиотеку для выполнения HTTP-запросов.
  3. Среда программирования: В этом руководстве используется Python, но API совместим с другими языками программирования.

Шаг 2: Понимание работы API

Основные конечные точки:

  • Создание задачи: Отправка CAPTCHA на решение.
    • Конечная точка: https://api.2captcha.com/createTask
  • Получение результата задачи: Получение решенной CAPTCHA.
    • Конечная точка: https://api.2captcha.com/getTaskResult

Шаг 3: Создание задачи CAPTCHA

Первый шаг — создание задачи с данными CAPTCHA. Вот как отправить запрос:

Пример запроса (Python):

import requests

API_KEY = "your_2captcha_api_key"

url = "https://api.2captcha.com/createTask"

data = {
    "clientKey": API_KEY,
    "task": {
        "type": "TextCaptchaTask",
        "comment": "What is the capital of France?"
    }
}

response = requests.post(url, json=data)
response_data = response.json()

if response_data["errorId"] == 0:
    task_id = response_data["taskId"]
    print(f"Задача успешно создана. ID задачи: {task_id}")
else:
    print(f"Ошибка: {response_data['errorDescription']}")

Параметры:

  • clientKey: Ваш уникальный API-ключ.
  • type: Должно быть TextCaptchaTask.
  • comment: Вопрос CAPTCHA.

Шаг 4: Проверка результата задачи

После создания задачи используйте её ID, чтобы получить результат. Дайте API несколько секунд для обработки запроса.

Пример запроса (Python):

import time

result_url = "https://api.2captcha.com/getTaskResult"

while True:
    result_response = requests.post(result_url, json={
        "clientKey": API_KEY,
        "taskId": task_id
    })
    result_data = result_response.json()

    if result_data["status"] == "ready":
        answer = result_data["solution"]["text"]
        print(f"CAPTCHA решена: {answer}")
        break
    else:
        print("Ожидание результата...")
        time.sleep(5)

Параметры:

  • clientKey: Ваш API-ключ.
  • taskId: ID созданной задачи.

Шаг 5: Как обойти буквенные CAPTCHA

Буквенные CAPTCHA требуют распознавания искаженного или замаскированного текста. API 2Captcha предоставляет OCR-подход для их решения.

Создание задачи на буквенную CAPTCHA

Для обхода буквенной CAPTCHA отправьте изображение CAPTCHA для обработки.

Пример запроса (Python):

import base64

image_path = "captcha_image.png"
with open(image_path, "rb") as image_file:
    encoded_image = base64.b64encode(image_file.read()).decode("utf-8")

url = "https://api.2captcha.com/createTask"

data = {
    "clientKey": API_KEY,
    "task": {
        "type": "ImageToTextTask",
        "body": encoded_image,
        "phrase": False,
        "case": True
    }
}

response = requests.post(url, json=data)
response_data = response.json()

if response_data["errorId"] == 0:
    task_id = response_data["taskId"]
    print(f"Задача успешно создана. ID задачи: {task_id}")
else:
    print(f"Ошибка: {response_data['errorDescription']}")

Параметры:

  • clientKey: Ваш уникальный API-ключ.
  • type: Должен быть ImageToTextTask.
  • body: Base64-кодированное изображение CAPTCHA.
  • phrase: Установите значение True, если CAPTCHA требует нескольких слов.
  • case: Установите значение True, если требуется учет регистра.

Получение решенной CAPTCHA

Используйте тот же метод, что и в Шаге 4, чтобы получить решение.


Шаг 6: Обработка ошибок API

При работе с API 2Captcha могут возникать ошибки. Вот основные из них и способы их решения:

Таблица ошибок

Код ошибки Описание
1 Неверный API-ключ.
10 CAPTCHA не может быть решена.
100 Достигнуто максимальное число задач.

Обработка ошибок в Python

Чтобы обеспечить изящную обработку ошибок, включите логику проверки ошибок в ваш скрипт:

def handle_api_error(response_data):
    if response_data["errorId"] != 0:
        print(f"Произошла ошибка: {response_data['errorDescription']}")
        if response_data["errorId"] == 1:
            raise ValueError("Неверный ключ API")
        elif response_data["errorId"] == 10:
            print("CAPTCHA не решена. Пожалуйста, попробуйте другое задание.")
        else:
            print("Неизвестная ошибка. Подробнее см. в документации.")

Шаг 7: Оптимизация производительности

Чтобы улучшить производительность и надежность системы, следуйте этим рекомендациям:

  1. Использование вебхуков для уведомлений – настройте вебхук, чтобы получать обратный вызов при решении CAPTCHA вместо постоянных запросов.
  2. Мониторинг баланса аккаунта – перед созданием задач проверяйте баланс с помощью getBalance.
  3. Реализация повторных попыток с экспоненциальной задержкой – при временных сбоях используйте стратегию повторных попыток с увеличивающейся задержкой.
  4. Ведение логов и мониторинг – записывайте логи взаимодействий с API и анализируйте аномалии для стабильной работы системы.

Заключение

Интеграция API 2Captcha для обхода как текстовых, так и буквенных CAPTCHA является надежным и эффективным способом автоматизации задач, требующих взаимодействия с CAPTCHA. Следуя этому руководству, вы сможете настроить и оптимизировать свою систему для обработки различных типов CAPTCHA. Более подробную информацию можно найти в документации API 2Captcha.