Troubleshooting

Ошибки BLS CAPTCHA и их устранение

Решение BLS CAPTCHA сопряжено с уникальными проблемами, поскольку оно использует специальную реализацию. Вот наиболее распространенные ошибки и их решения.


Ошибки отправки API

ERROR_BAD_PARAMETERS

Причина: Отсутствуют необходимые параметры — инструкция или изображения.

Исправить:

# WRONG — missing instructions
response = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY, "method": "bls",
    "image_base64_1": img1, "json": 1
})

# CORRECT — include instructions
response = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY, "method": "bls",
    "instructions": "Select all images with a car",
    "image_base64_1": img1, "json": 1
})

ERROR_WRONG_FILE_EXTENSION

Причина: Данные изображения недопустимы в формате Base64 или имеют неподдерживаемый формат.

Исправить:

  • Убедитесь, что изображения имеют формат PNG или JPEG в кодировке Base64.
  • Удалите префикс data:image/...;base64,.
  • Убедитесь, что строка base64 не обрезана.
import base64

# Strip the data URI prefix
src = img_element.get_attribute("src")
if src.startswith("data:image"):
    b64 = src.split(",")[1]
else:
    # Download and encode
    img_data = requests.get(src).content
    b64 = base64.b64encode(img_data).decode()

ERROR_CAPTCHA_UNSOLVABLE

Причина: Изображения слишком низкого качества, размыты или инструкция неоднозначна.

Исправить:

  • Снимайте изображения в полном разрешении
  • Убедитесь, что текст инструкции извлечен правильно.
  • Повторите попытку — некоторые задачи по своей сути более сложны.

Ошибки извлечения изображения

Изображения загружаются динамически

Проблема: изображения отсутствуют в DOM при первой загрузке страницы.

Исправление: Подождите, пока капча полностью отобразится:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

# Wait for captcha images to load
WebDriverWait(driver, 10).until(
    EC.presence_of_all_elements_located((By.CSS_SELECTOR, ".captcha-image img"))
)

Изображения — это холсты, а не элементы img.

Проблема: Некоторые реализации BLS отображают изображения в элементах <canvas>.

Исправление: Извлечение данных холста в формате Base64:

canvas_elements = driver.find_elements(By.CSS_SELECTOR, ".captcha-canvas")
for i, canvas in enumerate(canvas_elements, 1):
    b64 = driver.execute_script(
        "return arguments[0].toDataURL('image/png').split(',')[1];",
        canvas
    )
    payload[f"image_base64_{i}"] = b64

Изображения, стоящие за защитой от хотлинкинга

Проблема: URL-адреса изображений возвращают код 403 при получении вне браузера.

Исправление: Извлекайте изображения в контексте браузера:

# Get image data from within the browser
b64 = driver.execute_script("""
    var img = arguments[0];
    var canvas = document.createElement('canvas');
    canvas.width = img.naturalWidth;
    canvas.height = img.naturalHeight;
    canvas.getContext('2d').drawImage(img, 0, 0);
    return canvas.toDataURL('image/png').split(',')[1];
""", img_element)

Ошибки приложения решения

Выбраны неправильные изображения

Причина: Несоответствие порядка изображений при извлечении и отображении.

Исправление: Сохраняйте последовательный порядок:

# Ensure images are indexed in display order
captcha_imgs = driver.find_elements(By.CSS_SELECTOR, ".captcha-image img")
# The order of find_elements matches DOM order = display order
for i, img in enumerate(captcha_imgs, 1):
    payload[f"image_base64_{i}"] = extract_base64(img)

Индексы решения не совпадают

Причина: CaptchaAI возвращает индексы, отсчитываемые от 1, но ваш код использует отсчет от 0.

Исправить:

solution = result["request"]  # e.g., "1,3,5"
indices = [int(i) for i in solution.split(",")]

# Convert to 0-based for array access
for idx in indices:
    captcha_imgs[idx - 1].click()  # 1-based → 0-based

Отправка формы не удалась после правильного выбора

Причина: отсутствуют дополнительные поля формы или токены.

Исправление: Проверьте наличие скрытых полей, которые необходимо ввести вместе с кодом проверки:

# Look for hidden captcha tokens
hidden_fields = driver.find_elements(By.CSS_SELECTOR, "input[type='hidden']")
for field in hidden_fields:
    name = field.get_attribute("name")
    value = field.get_attribute("value")
    print(f"Hidden field: {name}={value}")

Ошибки тайм-аута

Срок действия капчи истекает до завершения решения

Проблема: BLS CAPTCHA имеет короткий период действия.

Исправить:

  • Извлеките изображения и немедленно отправьте их в CaptchaAI.
  • Не извлекайте изображения и не ждите перед отправкой.
  • Если решение занимает >60 секунд, возможно, срок действия капчи истек — обновите и повторите попытку.

Опрос занимает слишком много времени

Исправление. Убедитесь, что опрос выполняется правильно:

# Standard polling pattern
for _ in range(30):  # 30 attempts × 5 seconds = 150 seconds max
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": API_KEY, "action": "get", "id": task_id, "json": 1
    }).json()

    if result.get("status") == 1:
        return result["request"]
    if result.get("request") == "ERROR_CAPTCHA_UNSOLVABLE":
        # Don't keep polling — start over
        raise Exception("Unsolvable")

Контрольный список отладки

Проверять Действие
Инструкцию извлекли? Распечатайте и сверьте текст инструкции
Изображения действительны? Сохраните base64 в файл и откройте для проверки.
Количество изображений правильное? Сравните количество отправленных и отображаемых изображений
Порядок изображений правильный? Убедитесь, что порядок DOM соответствует порядку отображения.
Префикс Base64 удален? Удалить data:image/...;base64,
Формат решения? Анализ индексов, разделенных запятыми и начинающихся с 1
Индексное преобразование? Вычтите 1 для доступа к массиву с отсчетом от 0.

Часто задаваемые вопросы

Сколько изображений мне следует отправить на CaptchaAI?

Отправьте все изображения, отображаемые в CAPTCHA, обычно 3–9. Используйте от image_base64_1 до image_base64_9.

Что делать, если инструкция ведется не на английском языке?

Отправьте инструкцию точно так, как она отображается. CaptchaAI обрабатывает многоязычные инструкции.

Могу ли я предварительно загрузить изображения, чтобы ускорить решение?

Нет. BLS генерирует уникальные изображения за сеанс. Вы должны извлекать их заново для каждого экземпляра капчи.

Что, если BLS изменит формат CAPTCHA?

Если формат изменится, код извлечения изображения может потребовать обновления. Параметры API CaptchaAI (method=bls, инструкции, изображения) останутся прежними.


Связанные руководства

Комментарии для этой статьи отключены.

Похожие сообщения

Comparisons BLS CAPTCHA и reCAPTCHA Grid — сравнение
Практическое сравнение BLS CAPTCHA и re CAPTCHA Grid — сравнение, ориентированное на различия в стоимости, точности, скорости и усилиях по интеграции Captcha AI...

Практическое сравнение BLS CAPTCHA и re CAPTCHA Grid — сравнение, ориентированное на различия в стоимости, точ...

Apr 27, 2026
Tutorials BLS CAPTCHA: понимание кодов инструкций и их решение
Пошаговое руководство по BLS CAPTCHA: понимание кодов, инструкции и их решение, с примерами, которые можно использовать повторно, и понятным рабочим процессом C...

Пошаговое руководство по BLS CAPTCHA: понимание кодов, инструкции и их решение, с примерами, которые можно исп...

Apr 27, 2026
API Tutorials Bash Script + cURL + CaptchaAI: автоматизация Shell CAPTCHA
Пошаговое руководство по Bash Script + c URL + Captcha AI: автоматизация Shell CAPTCHA, с примерами многократного использования и понятным рабочим процессом Cap...

Пошаговое руководство по Bash Script + c URL + Captcha AI: автоматизация Shell CAPTCHA, с примерами многократн...

Apr 25, 2026