API Tutorials

Инструкции BLS CAPTCHA и подробное описание параметров кода

BLS CAPTCHA используют определенные параметры для отправки запроса. Понимание instructions, code и обработки ответов имеет решающее значение для надежного решения.


BLS CAPTCHA Справочник параметров

Параметр Необходимый Тип Описание
method Да Нить Должно быть bls
sitekey Да Нить Ключ сайта BLS CAPTCHA
pageurl Да Нить URL-адрес страницы с CAPTCHA
instructions Нет Нить Текстовые инструкции из изображения CAPTCHA
code Нет Нить Код BLS CAPTCHA/type идентификатор
json Нет Целое число Установите значение 1 для ответов JSON.

Извлечение параметров BLS

# extract_bls.py
import re
from selenium import webdriver
from selenium.webdriver.common.by import By


def extract_bls_params(url):
    """Extract BLS CAPTCHA parameters from a page."""
    driver = webdriver.Chrome()
    driver.get(url)

    params = {"pageurl": url}

    # Extract sitekey
    captcha_el = driver.find_element(By.CSS_SELECTOR, "[data-sitekey], .bls-captcha")
    sitekey = captcha_el.get_attribute("data-sitekey")
    if sitekey:
        params["sitekey"] = sitekey

    # Extract instructions if visible
    try:
        instructions_el = driver.find_element(
            By.CSS_SELECTOR, ".captcha-instructions, .captcha-text"
        )
        params["instructions"] = instructions_el.text.strip()
    except Exception:
        pass

    # Extract code from hidden input or script
    page_source = driver.page_source
    code_match = re.search(r'captcha_code["\']?\s*[:=]\s*["\']([^"\']+)', page_source)
    if code_match:
        params["code"] = code_match.group(1)

    driver.quit()
    return params


# Usage
params = extract_bls_params("https://bls-example.com/appointment")
print(params)

Отправка BLS CAPTCHA на CaptchaAI

Базовая подача

# solve_bls_basic.py
import requests
import time
import os


def solve_bls(sitekey, pageurl, instructions=None, code=None):
    """Solve BLS CAPTCHA via CaptchaAI API."""
    api_key = os.environ["CAPTCHAAI_API_KEY"]

    payload = {
        "key": api_key,
        "method": "bls",
        "sitekey": sitekey,
        "pageurl": pageurl,
        "json": 1,
    }

    # Add optional parameters for higher accuracy
    if instructions:
        payload["instructions"] = instructions
    if code:
        payload["code"] = code

    resp = requests.post(
        "https://ocr.captchaai.com/in.php",
        data=payload,
        timeout=30,
    )
    result = resp.json()

    if result.get("status") != 1:
        raise RuntimeError(f"Submit failed: {result.get('request')}")

    task_id = result["request"]

    # Poll for result
    time.sleep(10)
    for _ in range(30):
        resp = requests.get("https://ocr.captchaai.com/res.php", params={
            "key": api_key,
            "action": "get",
            "id": task_id,
            "json": 1,
        }, timeout=15)
        data = resp.json()

        if data.get("status") == 1:
            return data["request"]
        if data["request"] != "CAPCHA_NOT_READY":
            raise RuntimeError(data["request"])
        time.sleep(5)

    raise TimeoutError("BLS solve timeout")


# Usage
solution = solve_bls(
    sitekey="your-bls-sitekey",
    pageurl="https://bls-example.com/appointment",
    instructions="Select images in the correct order",
)
print(f"Solution: {solution}")

Инструкции Параметр

Параметр instructions сообщает CaptchaAI, что запрашивает CAPTCHA. Это повышает точность, когда текст задания не встроен в изображение.

# Common BLS instruction patterns:
instructions_examples = [
    "Select images in the correct order",
    "Click the images in order from left to right",
    "Arrange the images by number",
    "Select the matching image",
    "Click in the order shown",
]

# Extract instructions from the CAPTCHA image area
def get_instructions_from_page(driver):
    """Try multiple selectors to find instruction text."""
    selectors = [
        ".captcha-instructions",
        ".bls-captcha-text",
        "#captcha-prompt",
        ".challenge-text",
    ]

    for sel in selectors:
        try:
            el = driver.find_element(By.CSS_SELECTOR, sel)
            text = el.text.strip()
            if text:
                return text
        except Exception:
            continue

    return None

Код Параметр

Параметр code указывает вариант BLS CAPTCHA. Некоторые реализации BLS используют разные типы задач, определяемые кодом.

# Detect BLS CAPTCHA code from page
def detect_bls_code(page_source):
    """Detect which BLS CAPTCHA code/type is being used."""
    patterns = [
        (r'captchaType["\']?\s*[:=]\s*["\'](\w+)', "captchaType"),
        (r'data-captcha-code["\']?\s*=\s*["\'](\w+)', "data attribute"),
        (r'bls_code["\']?\s*[:=]\s*["\'](\w+)', "bls_code"),
    ]

    for pattern, source in patterns:
        match = re.search(pattern, page_source)
        if match:
            return match.group(1)

    return None

Полный поток BLS с селеном

# full_bls_flow.py
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import os
import re


def solve_bls_with_selenium(url, form_data=None):
    """Complete BLS CAPTCHA flow using Selenium."""
    driver = webdriver.Chrome()
    driver.get(url)

    wait = WebDriverWait(driver, 15)

    # Fill any form fields before CAPTCHA
    if form_data:
        for field_id, value in form_data.items():
            el = wait.until(EC.presence_of_element_located((By.ID, field_id)))
            el.clear()
            el.send_keys(value)

    # Extract CAPTCHA parameters
    captcha_container = wait.until(
        EC.presence_of_element_located((By.CSS_SELECTOR, "[data-sitekey], .bls-captcha"))
    )
    sitekey = captcha_container.get_attribute("data-sitekey")

    # Get instructions
    instructions = None
    try:
        inst_el = driver.find_element(By.CSS_SELECTOR, ".captcha-instructions")
        instructions = inst_el.text.strip()
    except Exception:
        pass

    # Solve via API
    solution = solve_bls(
        sitekey=sitekey,
        pageurl=driver.current_url,
        instructions=instructions,
    )

    # Inject solution
    driver.execute_script("""
        var input = document.querySelector('input[name="captcha-response"], #captcha-response');
        if (input) {
            input.value = arguments[0];
        } else {
            var hidden = document.createElement('input');
            hidden.type = 'hidden';
            hidden.name = 'captcha-response';
            hidden.value = arguments[0];
            document.forms[0].appendChild(hidden);
        }
    """, solution)

    # Submit form
    submit_btn = driver.find_element(By.CSS_SELECTOR, "button[type='submit'], #submit")
    submit_btn.click()

    # Wait for confirmation
    wait.until(EC.url_changes(url))
    result_url = driver.current_url
    driver.quit()

    return result_url

Поиск неисправностей

Проблема Причина Исправить
ERROR_BAD_PARAMETERS Отсутствует sitekey или pageurl. Убедитесь, что оба извлечены правильно.
Решение отклонено Инструкции не прошли Включите параметр instructions для неоднозначных задач.
Неправильный тип CAPTCHA Не BLS CAPTCHA Проверьте, действительно ли это reCAPTCHA или собственный тип
sitekey не найден Динамическая загрузка Подождите, пока элемент CAPTCHA отобразится, прежде чем извлекать его.

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

Всегда ли нужны инструкции?

Нет. CaptchaAI может решить большинство задач BLS CAPTCHA без инструкций. Однако передача инструкций повышает точность решения неоднозначных задач.

Что, если параметр кода изменится между сеансами?

Каждый раз извлекайте его заново. Код может меняться в зависимости от сеанса или географического местоположения.

Как быстро решает BLS CAPTCHA?

Обычно 10-20 секунд. CaptchaAI сообщает о 100% успешности BLS CAPTCHA.


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


Основные параметры BLS CAPTCHA —начни с CaptchaAI.

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

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

Use Cases BLS CAPTCHA на правительственных порталах: стратегии обработки
Практическое руководство по BLS CAPTCHA на правительственных порталах: стратегии обработки с реалистичными сценариями, советами по рабочему процессу и практичес...

Практическое руководство по BLS CAPTCHA на правительственных порталах: стратегии обработки с реалистичными сце...

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

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

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

Пошаговое руководство по порядку изображений BLS CAPTCHA и обработке сеток ответов с примерами, которые можно...

Apr 26, 2026