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 عن معدل نجاح بمعدل نجاح عالٍ لـ BLS CAPTCHA.


أدلة ذات صلة


النقاشات (0)

لا توجد تعليقات بعد.

مقالات ذات صلة

API Tutorials BLS CAPTCHA ترتيب الصور ومعالجة استجابة الشبكة
شرح خطوة بخطوة لـ BLS CAPTCHA ترتيب الصور ومعالجة استجابة الشبكة مع أمثلة مباشرة قابلة لإعادة الاستخدام ومسار واضح لتطبيقه باستخدام Captcha AI.

شرح خطوة بخطوة لـ BLS CAPTCHA ترتيب الصور ومعالجة استجابة الشبكة مع أمثلة مباشرة قابلة لإعادة الاستخدام ومسار...

Apr 23, 2026
Integrations Bright Data + CaptchaAI: دليل تكامل البروكسي
دليل تكامل لـ Bright Data + Captcha AI: دليل تكامل البروكسي يوضح الإعداد، وأمثلة الكود، ومسار الدمج الأنسب لتشغيل Captcha AI داخل تطبيقاتك بصورة واضحة وقابلة لل...

دليل تكامل لـ Bright Data + Captcha AI: دليل تكامل البروكسي يوضح الإعداد، وأمثلة الكود، ومسار الدمج الأنسب لتش...

Apr 25, 2026
Use Cases BLS CAPTCHA في البوابات الحكومية: استراتيجيات التعامل
دليل عملي حول BLS CAPTCHA في البوابات الحكومية: استراتيجيات التعامل يشرح السيناريوهات الواقعية ونمط التشغيل الآمن والخطوات التي تجعل هذا المسار قابلاً للتكرار ب...

دليل عملي حول BLS CAPTCHA في البوابات الحكومية: استراتيجيات التعامل يشرح السيناريوهات الواقعية ونمط التشغيل ال...

Apr 23, 2026