Sorun Giderme

Yaygın OCR CAPTCHA Hataları ve Düzeltmeleri

Image/text CAPTCHA çözme, görüntü kalitesi, format sorunları veya yanlış ipucu parametreleri nedeniyle başarısız olabilir. En yaygın hataları nasıl teşhis edip düzelteceğiniz aşağıda açıklanmıştır.


Gönderim hataları

ERROR_WRONG_FILE_EXTENSION

Neden: Görüntü desteklenen bir biçimde değil veya base64 geçersiz.

Düzeltme:

import base64

# Ensure proper encoding
with open("captcha.png", "rb") as f:
    b64 = base64.b64encode(f.read()).decode()

# Don't include the data URI prefix
# WRONG: "data:image/png;base64,iVBOR..."
# RIGHT: "iVBOR..."

ERROR_ZERO_CAPTCHA_FILESIZE

Neden: Görüntü dosyası boş veya indirme işlemi başarısız oldu.

Düzeltme:

import os

# Check file size before submitting
if os.path.getsize("captcha.png") == 0:
    print("Image file is empty — re-download")
    # Re-capture the captcha

ERROR_TOO_BIG_CAPTCHA_FILESIZE

Neden: Resim maksimum boyutu aşıyor (genellikle 600 KB).

Düzeltme:

from PIL import Image
import io

img = Image.open("captcha.png")
# Reduce quality without losing text clarity
buffer = io.BytesIO()
img.save(buffer, format="PNG", optimize=True)

Yanlış metin döndürüldü

Karakterler sürekli olarak yanlış okunuyor

Neden: Çözücü benzer karakterleri karıştırır (0/O, 1/l/I, 5/S).

Düzeltme: Karakter kümesini kısıtlamak için ipucu parametrelerini kullanın:

# If captcha is digits only
response = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY, "method": "base64", "body": b64,
    "numeric": 1,  # 1 = digits only
    "json": 1
})

# If captcha is letters only
response = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY, "method": "base64", "body": b64,
    "numeric": 2,  # 2 = letters only
    "json": 1
})

Yanlış harf (büyük harf ve küçük harf)

Neden: Çözücü varsayılan olarak küçük harf kullanıyor.

Düzeltme: Büyük/küçük harf duyarlılığını etkinleştirmek için regsense=1'yi ayarlayın:

response = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY, "method": "base64", "body": b64,
    "regsense": 1,  # Case-sensitive
    "json": 1
})

Ekstra veya eksik karakterler

Neden: Parazit, karakterler olarak yorumlanıyor veya karakterler birleşiyor.

Düzeltme: min/max uzunluk sınırlamalarını ayarlayın:

# If you know the CAPTCHA is always 6 characters
response = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY, "method": "base64", "body": b64,
    "min_len": 6,
    "max_len": 6,
    "json": 1
})

Matematik ifadesi hesaplanmıyor

Neden: Çözücü, "10" cevabını hesaplamak yerine "3+7" metnini okuyor.

Düzeltme: calc=1'yi ayarlayın:

response = requests.post("https://ocr.captchaai.com/in.php", data={
    "key": API_KEY, "method": "base64", "body": b64,
    "calc": 1,  # Compute the math expression
    "json": 1
})

Görüntü kalitesi sorunları

CAPTCHA çok küçük

Sorun: Çok küçük resimlerde (50 piksel yüksekliğin altında) karakter ayrıntıları kayboluyor.

Düzeltme: Mevcut en büyük boyutta çekim yapın. Sayfa captcha'yı küçük gösteriyorsa daha yüksek çözünürlüklü bir kaynak URL olup olmadığını kontrol edin:

# Check for higher-res version
img_src = captcha_el.get_attribute("src")
# Some sites use ?size=small — try removing or changing the parameter
high_res_src = img_src.replace("size=small", "size=large")

CAPTCHA animasyonlu

Sorun: Bazı CAPTCHA'lar, metnin yalnızca belirli karelerde görülebildiği animasyonlu GIF'ler kullanıyor.

Düzeltme: Doğru kareyi çıkarın:

from PIL import Image

gif = Image.open("captcha.gif")
# Extract each frame and find the one with text
for i in range(gif.n_frames):
    gif.seek(i)
    gif.save(f"frame_{i}.png")

CAPTCHA'nın şeffaf arka planı var

Sorun: Şeffaf arka plana sahip PNG, OCR için doğru şekilde oluşturulamayabilir.

Düzeltme: Beyaz bir arka plan ekleyin:

from PIL import Image

img = Image.open("captcha.png").convert("RGBA")
background = Image.new("RGBA", img.size, (255, 255, 255, 255))
background.paste(img, mask=img)
background.convert("RGB").save("captcha_white_bg.png")

Hatalı çözümlerin bildirilmesi

CaptchaAI yanlış metni döndürürse bunu bildirin:

# Report bad answer
requests.get("https://ocr.captchaai.com/res.php", params={
    "key": API_KEY,
    "action": "reportbad",
    "id": task_id
})

Bu, çözücünün doğruluğunu artırır ve çözme maliyetini geri ödeyebilir.


Doğruluk iyileştirme kontrol listesi

Parametre Ne zaman kullanılmalı Etki
numeric=1 Yalnızca rakamlar /digit harfindeki karışıklığı ortadan kaldırır
numeric=2 Yalnızca harfler /digit harfindeki karışıklığı ortadan kaldırır
min_len / max_len Bilinen uzunluk Ekstra/missing karakterlerini önler
regsense=1 Vaka önemlidir Büyük harfi korur/lowercase
calc=1 Matematik ifadesi Hesaplanmış yanıtı döndürür
phrase=1 Boşluk içerir Çok kelimeli yanıtlara izin verir
language=1 Kiril metni Doğru karakter kümesini kullanır
language=2 Latince metin Doğru karakter kümesini kullanır

SSS

CAPTCHA'm neden her zaman bir karakter yanlış çıkıyor?

Cevap uzunluğunu sınırlamak için min_len ve max_len kullanın. Ayrıca görüntü kalitesini de doğrulayın; bulanık görüntüler yanlış okumaya neden olur.

Dosya yüklemeyi mi yoksa base64'ü mü kullanmalıyım?

Her ikisi de eşit derecede iyi çalışır. Base64 programlı kullanıma uygundur; dosya yükleme, çok parçalı form araçlarıyla daha iyi çalışır.

CAPTCHA'ları diğer dillerde nasıl çözerim?

language parametresini ayarlayın: Kiril için 1, Latince için 2. Diğer komut dosyaları için parametreyi atlayın ve çözücünün otomatik olarak algılamasına izin verin.

Ses CAPTCHA'larını bu yöntemle çözebilir miyim?

Hayır. Ses CAPTCHA'ları farklı bir çözüm yaklaşımı gerektirir. Ses CAPTCHA desteği için CaptchaAI belgelerine bakın.


İlgili kılavuzlar

Bu makale için yorumlar devre dışı bırakılmıştır.