Comparisons

BLS CAPTCHA vs. reCAPTCHA Grid

Beide präsentieren Bilder, die Benutzer anhand einer Textaufforderung auswählen müssen. Aber BLS CAPTCHA ist eine benutzerdefinierte Implementierung, die ausschließlich auf Visa-Systemen von BLS International verwendet wird, während reCAPTCHA die weltweit eingesetzte Lösung von Google ist. Die Lösungsansätze, Integrationsanforderungen und CaptchaAI-API-Methoden unterscheiden sich erheblich.


Direkter Vergleich

Funktion BLS CAPTCHA reCAPTCHA-Raster
Anbieter BLS International (benutzerdefiniert) Google
Formatieren Trennen Sie unterschiedliche Bilder (3-9) Einzelbild, aufgeteilt in ein Raster (3×3 oder 4×4)
Dynamische Kacheln Nein – fester Satz von Bildern Ja – neue Kacheln werden nach der Auswahl eingeblendet
Verhaltensanalyse Minimal Umfangreich (Maus, Timing, IP)
Punktesystem Keine Risikoanalyse bei jeder Anfrage
API-Methode method=bls method=userrecaptcha
Benötigte Parameter instructions, image_base64_1..9 googlekey, pageurl
Antwortformat Bildindizes (z. B. 1,3,5) Tokenzeichenfolge
Tokenbasiertes Lösen Nein – Bilder müssen direkt gelöst werden Ja – die Token-Methode verwaltet das Raster intern
Browser erforderlich Ja (Bilder müssen aus DOM extrahiert werden) Optional (Token-Methode funktioniert ohne Browser)
Wo verwendet Nur BLS-Visa-Terminvereinbarungsseiten Millionen von Websites weltweit
Typische Lösungszeit 5-15 Sekunden 10-30 Sekunden

Lösen von BLS CAPTCHA mit CaptchaAI

BLS erfordert das Extrahieren jedes Bildes von der Seite, das Codieren als Base64 und das Versenden mit dem Anweisungstext.

Python:

import requests
import base64
import time
from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://example-bls-site.com/appointment")

# Step 1: Extract instruction text
instruction = driver.find_element(By.CSS_SELECTOR, ".captcha-instruction").text
# Example: "Select all images with a motorcycle"

# Step 2: Extract and encode each image
images = driver.find_elements(By.CSS_SELECTOR, ".captcha-image img")
image_data = {}
for i, img in enumerate(images, 1):
    # Get image source and convert to base64
    src = img.get_attribute("src")
    if src.startswith("data:image"):
        b64 = src.split(",")[1]
    else:
        img_bytes = requests.get(src).content
        b64 = base64.b64encode(img_bytes).decode()
    image_data[f"image_base64_{i}"] = b64

# Step 3: Submit to CaptchaAI
payload = {
    "key": "YOUR_API_KEY",
    "method": "bls",
    "instructions": instruction,
    **image_data
}
resp = requests.post("https://ocr.captchaai.com/in.php", data=payload)
task_id = resp.text.split("|")[1]

# Step 4: Poll for result
for _ in range(30):
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": "YOUR_API_KEY", "action": "get", "id": task_id
    })
    if result.text.startswith("OK|"):
        indices = result.text.split("|")[1]  # e.g., "1,3,5"
        break

# Step 5: Click the correct images
for idx in indices.split(","):
    images[int(idx) - 1].click()
    time.sleep(0.3)  # Small delay between clicks

Node.js:

const axios = require("axios");
const puppeteer = require("puppeteer");

(async () => {
  const browser = await puppeteer.launch({ headless: "new" });
  const page = await browser.newPage();
  await page.goto("https://example-bls-site.com/appointment");

  // Extract instruction text
  const instruction = await page.$eval(
    ".captcha-instruction",
    (el) => el.textContent,
  );

  // Extract images as base64
  const imageElements = await page.$$(".captcha-image img");
  const imageData = {};
  for (let i = 0; i < imageElements.length; i++) {
    const src = await imageElements[i].evaluate((el) => el.src);
    let b64;
    if (src.startsWith("data:image")) {
      b64 = src.split(",")[1];
    } else {
      const resp = await axios.get(src, { responseType: "arraybuffer" });
      b64 = Buffer.from(resp.data).toString("base64");
    }
    imageData[`image_base64_${i + 1}`] = b64;
  }

  // Submit to CaptchaAI
  const formData = new URLSearchParams({
    key: "YOUR_API_KEY",
    method: "bls",
    instructions: instruction,
    ...imageData,
  });
  const submitResp = await axios.post(
    "https://ocr.captchaai.com/in.php",
    formData.toString(),
  );
  const taskId = submitResp.data.split("|")[1];

  // Poll for result
  let indices;
  for (let i = 0; i < 30; i++) {
    await new Promise((r) => setTimeout(r, 5000));
    const result = await axios.get("https://ocr.captchaai.com/res.php", {
      params: { key: "YOUR_API_KEY", action: "get", id: taskId },
    });
    if (result.data.startsWith("OK|")) {
      indices = result.data.split("|")[1];
      break;
    }
  }

  // Click correct images
  for (const idx of indices.split(",")) {
    await imageElements[parseInt(idx) - 1].click();
    await new Promise((r) => setTimeout(r, 300));
  }

  await browser.close();
})();

Lösen des reCAPTCHA-Grids mit CaptchaAI

reCAPTCHA verwendet einen tokenbasierten Ansatz – es ist keine Bildextraktion erforderlich.

Python:

import requests
import time

# Step 1: Extract sitekey from page
# <div class="g-recaptcha" data-sitekey="6Le-wvkS..."></div>
sitekey = "6Le-wvkSAAAAAPBMRTvw..."
page_url = "https://example.com/form"

# Step 2: Submit to CaptchaAI
resp = requests.get("https://ocr.captchaai.com/in.php", params={
    "key": "YOUR_API_KEY",
    "method": "userrecaptcha",
    "googlekey": sitekey,
    "pageurl": page_url
})
task_id = resp.text.split("|")[1]

# Step 3: Poll for token
for _ in range(60):
    time.sleep(5)
    result = requests.get("https://ocr.captchaai.com/res.php", params={
        "key": "YOUR_API_KEY", "action": "get", "id": task_id
    })
    if result.text.startswith("OK|"):
        token = result.text.split("|")[1]
        break

# Step 4: Inject token (no clicking needed)
# Option A: Hidden field injection
driver.execute_script(
    f'document.getElementById("g-recaptcha-response").value = "{token}";'
)
# Option B: Pure HTTP submission
requests.post(page_url, data={"g-recaptcha-response": token, "other_field": "value"})

Node.js:

const axios = require("axios");

async function solveRecaptchaGrid(sitekey, pageUrl) {
  // Submit
  const submitResp = await axios.get("https://ocr.captchaai.com/in.php", {
    params: {
      key: "YOUR_API_KEY",
      method: "userrecaptcha",
      googlekey: sitekey,
      pageurl: pageUrl,
    },
  });
  const taskId = submitResp.data.split("|")[1];

  // Poll for token
  for (let i = 0; i < 60; i++) {
    await new Promise((r) => setTimeout(r, 5000));
    const result = await axios.get("https://ocr.captchaai.com/res.php", {
      params: { key: "YOUR_API_KEY", action: "get", id: taskId },
    });
    if (result.data.startsWith("OK|")) {
      return result.data.split("|")[1];
    }
  }
  throw new Error("Solve timed out");
}

Vergleich der Integrationskomplexität

Aspekt BLS reCAPTCHA-Raster
Bildextraktion Jedes Bild muss manuell aus dem DOM extrahiert werden Nicht erforderlich – die Token-Methode wird intern verarbeitet
Umgang mit Anweisungen Textanweisung muss von der Seite extrahiert werden Nicht erforderlich
Base64-Kodierung Für jedes Bild erforderlich Nicht erforderlich
Lösungsanwendung Klicken Sie auf einzelne Bilder nach zurückgegebenen Indizes Token in verstecktes Feld oder HTTP POST einfügen
Browser-Automatisierung Erforderlich – keine Headless-Alternative Optional – kann reine HTTP-Anfragen verwenden
Fehlerbehebung Bilder bei Fehler erneut extrahieren Bei Fehler erneut Token anfordern
Gleichzeitiges Lösen Begrenzt – Bilder, die an die Browsersitzung gebunden sind Ganz einfach – Token-Anfragen sind zustandslos
Codezeilen (typisch) 40-60 Zeilen 15-25 Zeilen

Wann welcher Solver verwendet werden soll

Szenario Empfohlener Ansatz
Terminbuchung für das BLS-Visum Verwenden Sie method=bls mit Bildextraktion
Jede Website mit reCAPTCHA Verwenden Sie method=userrecaptcha mit Sitekey
BLS-Site mit eingebettetem reCAPTCHA Überprüfen Sie, welches die Aktion schützt – BLS-Sites verwenden manchmal beides
Unbekanntes Bild-Captcha Überprüfen Sie zunächst, ob es die Marke BLS trägt. Wenn nicht, versuchen Sie es mit den Methoden reCAPTCHA oder OCR

Fehlerbehebung

Problem BLS-Fix reCAPTCHA-Fix
Falsche Antwort zurückgegeben Überprüfen Sie, ob der Anweisungstext mit dem übereinstimmt, was auf der Seite angezeigt wird Stellen Sie sicher, dass Sitekey und PageURL korrekt sind
Bilder werden nicht geladen Fügen Sie beim Abrufen von Bild-URLs User-Agent und Cookies hinzu Nicht zutreffend – keine Bilder zum Abrufen
Token abgelehnt Klicken Sie auf der Seite auf die Indizes in der richtigen Reihenfolge In g-recaptcha-response einfügen UND Rückruf ausführen
Zu langsam lösen Reduzieren Sie die Anzahl der Bilder – senden Sie nur sichtbare Bilder Verwenden Sie einen Proxy in der Nähe der Zielsite

FAQ

Was ist schwieriger zu lösen?

BLS erfordert mehr Integrationsarbeit (Bildextraktion, Befehlsanalyse und indexbasiertes Klicken), aber die Bilder sind normalerweise klarer und einfacher. reCAPTCHA ist einfacher zu integrieren (Token-Methode), aber die Herausforderungen von Google können bei dynamischen Kacheln komplexer sein.

Kann ich die reCAPTCHA-Token-Methode für BLS verwenden?

Nein. BLS ist keine reCAPTCHA-Implementierung. Sie müssen method=bls mit einzelnen base64-codierten Bildern und dem Anweisungstext verwenden.

Nutzen beide die Technologie von Google?

Nein. BLS CAPTCHA ist eine benutzerdefinierte, proprietäre Implementierung, die für die Visumdienste von BLS International entwickelt wurde. reCAPTCHA ist das Produkt von Google, das weltweit auf Millionen von Websites verwendet wird.

Was ist im großen Maßstab kostengünstiger zu lösen?

reCAPTCHA-Token-Lösungen sind im Allgemeinen für Vorgänge mit hohem Volumen kostengünstiger, da die Integration einfacher ist (kein Bildextraktionsaufwand) und Sie gleichzeitig zustandslose Anforderungen ausführen können. Für die BLS-Lösung ist für jede Lösung eine Browsersitzung erforderlich.

Kann ich beide Typen auf derselben Seite lösen?

Ja. Einige BLS-Sites verwenden ihr benutzerdefiniertes CAPTCHA für die Erstüberprüfung und reCAPTCHA für die Formularübermittlung. Erkennen Sie jeden Typ separat und verwenden Sie für jeden die entsprechende CaptchaAI-Methode.


Verwandte Leitfäden

  • So lösen Sie BLS CAPTCHA Schritt für Schritt – vollständige Anleitung zur BLS-Integration
  • So lösen Sie reCAPTCHA v2 mithilfe der API – Komplettes reCAPTCHA v2-Tutorial
  • Grid-Image-CAPTCHA automatisch lösen – wie Grid-Herausforderungen funktionieren
  • BLS Captcha-Fehler und Fehlerbehebung — BLS-spezifische Fehlerbehebungen
Kommentare sind für diesen Artikel deaktiviert.

Verwandte Beiträge