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.