Fehlerbehebung

Koordinatenfehler im Rasterbild: Diagnose und Behebung

Rasterbild-CAPTCHAS (reCAPTCHA v2-Bildherausforderungen) geben Zellindizes als Lösung zurück. Wenn die zurückgegebenen Zellen falsch sind – wenn Sie auf die falschen Kacheln klicken oder ERROR_CAPTCHA_UNSOLVABLE erhalten – liegt das Problem normalerweise in der Art und Weise, wie Sie das Bild einreichen, dem Rastergrößenparameter oder dem Anweisungstext.

Der schnellste Diagnoseweg ist, mit dem sichtbaren Symptom zu beginnen: Sind alle Klicks falsch, nur um eine Zelle verschoben oder ist schon das Solve-Ergebnis unbrauchbar? Das weist fast immer auf unterschiedliche Fehlerklassen hin.

Schnelldiagnose vor den Details

Beobachtung Wahrscheinlichste Ursache Prüfen Sie zuerst
Fast alle Klicks liegen komplett daneben Falsche Rastergröße oder falsches Bild grid_size und die echte Bildquelle
Alle Treffer sind um eine Zelle verschoben 1-basiert vs. 0-basiert Ihren Index-Umrechnungs-Schritt
Es kommt ERROR_CAPTCHA_UNSOLVABLE Schlechte Bildqualität oder zu vage Instruktion Instruktionstext und Originalbild
Es klappt manchmal und manchmal gar nicht Unterschiedliche Challenge-Varianten oder instabile Session Dasselbe Bild, dieselbe Session und denselben Erfassungsweg

Wie das Lösen von Rasterbildern funktioniert

CaptchaAI empfängt Ihr Rasterbild, analysiert jede Zelle und gibt ein Array von Indizes zurück, die der Anweisung entsprechen. Die Zellen werden von links nach rechts und von oben nach unten nummeriert:

3×3 Grid:          4×4 Grid:
1 2 3              1  2  3  4
4 5 6              5  6  7  8
7 8 9              9  10 11 12
                   13 14 15 16

Die Antwort sieht so aus: [1, 3, 6, 9] – was bedeutet, dass die Zellen 1, 3, 6 und 9 die Zielobjekte enthalten.


Häufige Fehler und Korrekturen

Falsche Rastergröße

Der häufigste Koordinatenfehler. Wenn das CAPTCHA ein 4×4-Raster ist, Sie aber grid_size=3x3 senden, ist die Zellennummerierung falsch und es werden die falschen Kacheln ausgewählt.

# WRONG — 4×4 grid sent as 3×3
data = {
    "key": "YOUR_API_KEY",
    "method": "post",
    "grid_size": "3x3",      # Wrong!
    "img_type": "recaptcha",
    "instructions": "traffic lights",
    "json": 1
}

# CORRECT — match the actual grid
data = {
    "key": "YOUR_API_KEY",
    "method": "post",
    "grid_size": "4x4",      # Correct
    "img_type": "recaptcha",
    "instructions": "traffic lights",
    "json": 1
}

So erkennen Sie die Rastergröße programmgesteuert:

from PIL import Image

img = Image.open("grid_captcha.png")
width, height = img.size

# reCAPTCHA grids are square. 3×3 tiles are ~100px each, 4×4 tiles are ~75px each
tile_width = width // 3
if width % 4 == 0 and (width // 4) < 100:
    grid_size = "4x4"
else:
    grid_size = "3x3"

print(f"Detected grid size: {grid_size}")

Zugeschnittenes oder geändertes Bild

Durch das Senden eines zugeschnittenen, in der Größe geänderten oder mit einem Screenshot versehenen Bildes ändert sich die Rasterausrichtung. CaptchaAI benötigt das originale CAPTCHA-Bild genau so, wie es gerendert wurde.

Fix: Erfassen Sie das Bild direkt aus dem reCAPTCHA-Iframe, nicht einen ganzseitigen Screenshot.

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()
driver.get("https://example.com")

# Switch to reCAPTCHA iframe
iframe = driver.find_element(By.CSS_SELECTOR, 'iframe[title*="recaptcha"]')
driver.switch_to.frame(iframe)

# Get the grid image element
grid_img = driver.find_element(By.CSS_SELECTOR, "img.rc-image-tile-wrapper img")
grid_img.screenshot("grid_captcha.png")  # Captures just the grid, not the whole page

Falsche oder vage Anweisungen

Der Anweisungstext muss mit den Anforderungen des CAPTCHAs übereinstimmen. Vage Anweisungen führen zu falschen Zellauswahlen.

# WRONG — too vague
data["instructions"] = "select images"

# CORRECT — specific instruction from the CAPTCHA
data["instructions"] = "crosswalks"

Allgemeine Befehlswerte: crosswalks, traffic lights, cars, buses, motorcycles, bicycles, fire hydrants, stairs, bridges, parking meters.


Zellindex-Offset (0-basiert vs. 1-basiert)

CaptchaAI gibt 1-basierte Zellindizes zurück. Wenn Ihr Automatisierungscode eine 0-basierte Indizierung verwendet, müssen Sie 1 subtrahieren.

import json

# CaptchaAI returns 1-based indices
solution = json.loads(result["request"])  # e.g., [1, 3, 6, 9]

# Convert to 0-based for Selenium click automation
zero_based = [cell - 1 for cell in solution]

# Click grid cells using 0-based index
tiles = driver.find_elements(By.CSS_SELECTOR, ".rc-image-tile-wrapper img")
for idx in zero_based:
    tiles[idx].click()

Probleme mit dem Bildformat

CaptchaAI unterstützt JPG, JPEG, PNG und GIF. Andere Formate geben ERROR_WRONG_FILE_EXTENSION zurück.

# WRONG — WebP or BMP
files = {"file": open("grid.webp", "rb")}  # Not supported

# CORRECT — convert to PNG first
from PIL import Image
img = Image.open("grid.webp")
img.save("grid.png", "PNG")
files = {"file": open("grid.png", "rb")}

Entscheidungsbaum

Grid cells are wrong
    ↓
Is grid_size correct (3x3 or 4x4)? → No → Fix grid_size parameter
    ↓ Yes
Is the image the original CAPTCHA (not cropped)? → No → Capture directly from iframe
    ↓ Yes
Is instruction text specific? → No → Use exact CAPTCHA instruction text
    ↓ Yes
Using 1-based indexing for clicks? → No → Convert solution to 0-based
    ↓ Yes
Image in supported format (JPG/PNG)? → No → Convert image format
    ↓ Yes
Report tiles to CaptchaAI via reportbad

Falsche Lösungen melden

Wenn die Koordinaten trotz korrekter Parameter dauerhaft falsch sind, melden Sie die Lösung:

requests.get("https://ocr.captchaai.com/res.php", params={
    "key": "YOUR_API_KEY",
    "action": "reportbad",
    "id": task_id,
    "json": 1
})

Dies trägt dazu bei, dass CaptchaAI die Genauigkeit verbessert und möglicherweise die Lösungskosten erstattet.


FAQ

Welche Rastergrößen unterstützt CaptchaAI?

3×3 und 4×4 Gitter. Dies sind die Standardformate für reCAPTCHA-Bildherausforderungen.

Warum erhalte ich ERROR_CAPTCHA_UNSOLVABLE für Rasterbilder?

Die Bildqualität ist zu niedrig, der Anweisungstext ist falsch oder das Bild ist kein erkennbares Raster-CAPTCHA. Stellen Sie sicher, dass Sie das unbeschnittene Originalbild mit den richtigen Anweisungen senden.

Meine Zellen sind um eins versetzt. Was ist falsch?

CaptchaAI gibt 1-basierte Indizes zurück. Wenn Ihr Code 0-basiert erwartet, subtrahieren Sie 1 von jedem Index.


Nutzen Sie CaptchaAI erst dann als letzten Schritt im Diagnosepfad, wenn Rastergröße, Instruktion, Bildquelle und Indexlogik sauber bestätigt sind.


Verwandte Leitfäden

Kommentare sind für diesen Artikel deaktiviert.