Устранение неполадок

Ошибки координат изображения сетки: диагностика и исправление

CAPTCHA с изображением сетки (проблемы с изображениями reCAPTCHA v2) возвращают индексы ячеек в качестве решения. Когда возвращаемые ячейки неверны (щелкните не те плитки или получите ERROR_CAPTCHA_UNSOLVABLE), проблема обычно заключается в том, как вы отправляете изображение, параметр размера сетки или текст инструкции.


Как работает решение сеточных изображений

CaptchaAI получает изображение сетки, анализирует каждую ячейку и возвращает массив индексов, соответствующий инструкции. Ячейки нумеруются слева направо и сверху вниз:

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

Ответ выглядит так: [1, 3, 6, 9] — это означает, что ячейки 1, 3, 6 и 9 содержат целевые объекты.


Распространенные ошибки и исправления

Неправильный размер сетки

Самая распространенная ошибка координат. Если CAPTCHA представляет собой сетку 4×4, но вы отправляете grid_size=3x3, нумерация ячеек неверна и выбираются неправильные плитки.

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

Как программно определить размер сетки:

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

Обрезанное или измененное изображение

Отправка обрезанного изображения, изображения с измененным размером или завернутого в снимок экрана изменяет выравнивание сетки. CaptchaAI необходимо исходное изображение CAPTCHA в том виде, в каком оно было визуализировано.

Исправление: захватывайте изображение непосредственно из iframe reCAPTCHA, а не скриншот всей страницы.

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

Неправильные или расплывчатые инструкции

Текст инструкции должен соответствовать запросу CAPTCHA. Расплывчатые инструкции приводят к неправильному выбору ячеек.

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

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

Общие значения инструкций: crosswalks, traffic lights, cars, buses, motorcycles, bicycles, fire hydrants, stairs, bridges, parking meters.


Смещение индекса ячейки (на основе 0 или 1)

CaptchaAI возвращает индексы ячеек, отсчитываемые от 1. Если ваш код автоматизации использует индексацию, отсчитываемую от 0, вам необходимо вычесть 1.

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

Проблемы с форматом изображения

CaptchaAI поддерживает форматы JPG, JPEG, PNG и GIF. Другие форматы возвращают ERROR_WRONG_FILE_EXTENSION.

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

Дерево решений

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

Сообщение о неправильных решениях

Если координаты постоянно неверны, несмотря на правильные параметры, сообщите о решении:

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

Это помогает CaptchaAI повысить точность и может возместить стоимость решения.


Проверки проверки сетки

  • Прежде чем отправлять ответ, убедитесь, что размеры сетки соответствуют координатам, ожидаемым целью.
  • Нормализуйте масштабирование изображения и математические вычисления области просмотра, чтобы точки щелчка выдерживали изменения масштаба браузера и соотношения пикселей устройства.
  • Отклоняйте ответы, выходящие за рамки объявленной сетки, вместо того, чтобы молча пересылать неверные координаты.

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

Какие размеры сетки поддерживает CaptchaAI?

Сетки 3×3 и 4×4. Это стандартные форматы изображений reCAPTCHA.

Почему я получаю ERROR_CAPTCHA_UNSOLVABLE для изображений в виде сетки?

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

Мои ячейки смещены на единицу. Что не так?

CaptchaAI возвращает индексы, отсчитываемые от 1. Если ваш код ожидает отсчет от 0, вычтите 1 из каждого индекса.


Решите CAPTCHA для изображения сетки с помощью CaptchaAI

Получите точные решения для изображений в виде сетки наcaptchaai.com.


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

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