Izgara görüntüsü CAPTCHA'ları (reCAPTCHA v2 görüntü zorlukları), çözüm olarak hücre endekslerini döndürür. Döndürülen hücreler yanlış olduğunda (yanlış kutucuklara tıklamak veya ERROR_CAPTCHA_UNSOLVABLE almak) sorun genellikle görüntüyü, ızgara boyutu parametresini veya talimat metnini nasıl gönderdiğinizle ilgilidir.
Izgara görüntüsü çözme nasıl çalışır?
CaptchaAI ızgara görüntünüzü alır, her hücreyi analiz eder ve talimatla eşleşen bir dizi indeks döndürür. Hücreler soldan sağa, yukarıdan aşağıya numaralandırılır:
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
Yanıt şuna benzer: [1, 3, 6, 9] — 1, 3, 6 ve 9 numaralı hücrelerin hedef nesneleri içerdiği anlamına gelir.
Yaygın hatalar ve düzeltmeler
Yanlış ızgara boyutu
En yaygın koordinat hatası. CAPTCHA 4×4 ızgaraysa ancak grid_size=3x3 gönderirseniz hücre numaralandırması yanlış olur ve yanlış döşemeler seçilir.
# 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
}
Izgara boyutu programlı olarak nasıl tespit edilir:
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}")
Kırpılmış veya değiştirilmiş resim
Kırpılmış, yeniden boyutlandırılmış veya ekran görüntüsüne sarılmış bir resmin gönderilmesi ızgara hizalamasını değiştirir. CaptchaAI'nin orijinal CAPTCHA görüntüsüne tam olarak işlendiği gibi ihtiyacı var.
Düzeltme: Görüntüyü tam sayfa ekran görüntüsünden değil, doğrudan reCAPTCHA iframe'den yakalayın.
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
Yanlış veya belirsiz talimatlar
Talimat metni CAPTCHA'nın sorduğu şeyle eşleşmelidir. Belirsiz talimatlar yanlış hücre seçimlerine yol açar.
# WRONG — too vague
data["instructions"] = "select images"
# CORRECT — specific instruction from the CAPTCHA
data["instructions"] = "crosswalks"
Ortak talimat değerleri: crosswalks, traffic lights, cars, buses, motorcycles, bicycles, fire hydrants, stairs, bridges, parking meters.
Hücre dizini uzaklığı (0 tabanlı ve 1 tabanlı)
CaptchaAI 1 tabanlı hücre indekslerini döndürür. Otomasyon kodunuz 0 tabanlı indeksleme kullanıyorsa 1 çıkarmanız gerekir.
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()
Resim formatı sorunları
CaptchaAI, JPG, JPEG, PNG ve GIF'i destekler. Diğer formatlar ERROR_WRONG_FILE_EXTENSION değerini döndürür.
# 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")}
Karar ağacı
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
Hatalı çözümlerin bildirilmesi
Doğru parametrelere rağmen koordinatlar sürekli olarak yanlışsa çözümü bildirin:
requests.get("https://ocr.captchaai.com/res.php", params={
"key": "YOUR_API_KEY",
"action": "reportbad",
"id": task_id,
"json": 1
})
Bu, CaptchaAI'nin doğruluğu artırmasına yardımcı olur ve çözüm maliyetini iade edebilir.
SSS
CaptchaAI hangi ızgara boyutlarını destekliyor?
3×3 ve 4×4 ızgaralar. Bunlar standart reCAPTCHA görsel sorgulama formatlarıdır.
Izgara görüntüleri için neden ERROR_CAPTCHA_UNSOLVABLE alıyorum?
Görüntü kalitesi çok düşük, talimat metni yanlış veya görüntü tanınabilir bir ızgara CAPTCHA değil. Orijinal, kırpılmamış resmi doğru talimatla gönderdiğinizi doğrulayın.
Hücrelerim bir tanesiyle dengelendi. Yanlış olan ne?
CaptchaAI 1 tabanlı endeksleri döndürür. Kodunuz 0 tabanlı bir değer bekliyorsa her dizinden 1 çıkarın.
Izgara görüntüsü CAPTCHA'larını CaptchaAI ile çözme
Doğru ızgara görüntüsü çözümlerini şu adreste edinin:captchaai.com.
İlgili kılavuzlar
- API Kullanarak Grid Image CAPTCHA'ler Nasıl Çözülür?
- CaptchaAI Hata Kodları Referansı
- Resim CAPTCHA Yanlış Yanıt Kalitesi Optimizasyonu
- ERROR_BAD_PARAMETERS Doğrulama İsteği
Izgara doğrulama kontrolleri
- Herhangi bir yanıt göndermeden önce ızgara boyutlarının hedefin beklediği koordinatlarla eşleştiğini doğrulayın.
- Tıklama noktalarının tarayıcı yakınlaştırması ve cihaz piksel oranı değişikliklerinden etkilenmemesi için görüntü ölçeklendirmesini ve görünüm alanı matematiğini normalleştirin.
- Kötü koordinatları sessizce iletmek yerine, bildirilen ızgaranın dışına çıkan yanıtları reddedin.