API-Tutorials

BLS CAPTCHA-Anweisungen und Code-Parameter – tiefer Einblick

BLS CAPTCHAs verwenden bestimmte Parameter für die Einreichung von Herausforderungen. Das Verständnis von instructions, code und der Antwortverarbeitung ist für eine zuverlässige Lösung von entscheidender Bedeutung.


BLS CAPTCHA Parameterreferenz

Parameter Erforderlich Typ Beschreibung
method Ja Zeichenfolge Muss bls sein
sitekey Ja Zeichenfolge Der BLS CAPTCHA-Schlüssel der Site
pageurl Ja Zeichenfolge URL der Seite, auf der das CAPTCHA angezeigt wird
instructions Nein Zeichenfolge Textanweisungen aus dem CAPTCHA-Bild
code Nein Zeichenfolge BLS CAPTCHA-Code/type-Kennung
json Nein Ganzzahl Für JSON-Antworten auf 1 festlegen

Extrahieren von BLS-Parametern

# 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)

Senden von BLS CAPTCHA an CaptchaAI

Grundlegende Einreichung

# 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}")

Befehlsparameter

Der Parameter instructions teilt CaptchaAI mit, was das CAPTCHA verlangt. Dies verbessert die Genauigkeit, wenn der Herausforderungstext nicht in das Bild eingebettet ist.

# 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

Codeparameter

Der Parameter code gibt die Variante BLS CAPTCHA an. Einige BLS-Implementierungen verwenden unterschiedliche Challenge-Typen, die durch einen Code identifiziert werden.

# 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

Vollständiger BLS Flow mit Selenium

# 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

Fehlerbehebung

Problem Ursache Lösung
ERROR_BAD_PARAMETERS sitekey oder pageurl fehlt Stellen Sie sicher, dass beide korrekt extrahiert wurden
Lösung abgelehnt Anweisungen nicht übergeben Fügen Sie den Parameter instructions für mehrdeutige Herausforderungen hinzu
Falscher CAPTCHA-Typ Kein BLS CAPTCHA Überprüfen Sie, ob es sich tatsächlich um reCAPTCHA oder einen benutzerdefinierten Typ handelt
sitekey nicht gefunden Dynamisches Laden Warten Sie, bis das CAPTCHA-Element gerendert ist, bevor Sie es extrahieren

FAQ

Werden immer Anweisungen benötigt?

Nein. CaptchaAI kann die meisten BLS CAPTCHAs ohne Anweisungen lösen. Das Weitergeben von Anweisungen verbessert jedoch die Genauigkeit bei mehrdeutigen Herausforderungen.

Was passiert, wenn sich der Codeparameter zwischen Sitzungen ändert?

Extrahieren Sie es jedes Mal erneut. Der Code kann sich je nach Sitzung oder geografischem Standort ändern.

Wie schnell löst BLS CAPTCHA?

Normalerweise 10–20 Sekunden. CaptchaAI meldet eine Erfolgsquote von 100 % für BLS CAPTCHAs.


Verwandte Leitfäden

  • BLS CAPTCHA Bildraster-Antwort
  • BLS CAPTCHA Fehler und Fehlerbehebung

Master-BLS CAPTCHA-Parameter – Beginnen Sie mit CaptchaAI.

Diskussionen (0)

Noch keine Kommentare.