Pemecahan Masalah

Kesalahan dan Perbaikan Umum OCR CAPTCHA

Solve image/text CAPTCHA bisa gagal karena kualitas gambar, masalah format, atau parameter hint yang salah. Berikut cara mendiagnosis dan memperbaiki error paling umum.


Error Pengiriman

ERROR_WRONG_FILE_EXTENSION

Penyebab: Gambar tidak dalam format yang didukung atau base64 tidak valid. Perbaikan:

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

Penyebab: File gambar kosong atau download gagal. Perbaikan:

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

Penyebab: Gambar melebihi ukuran maksimum (biasanya 600KB). Perbaikan:

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)

Teks yang Salah Dikembalikan

Karakter Secara Konsisten Salah Terbaca

Penyebab: Solver membingungkan karakter serupa (0/O, 1/l/I, 5/S).

Perbaikan: Gunakan parameter hint untuk membatasi character set:

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

Salah Huruf Besar/Kecil

Penyebab: Default solver adalah huruf kecil.

Perbaikan: Atur regsense=1 untuk mengaktifkan case sensitivity:

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

Karakter Tambahan atau Hilang

Penyebab: Noise diartikan sebagai karakter, atau karakter digabungkan.

Perbaikan: Tetapkan batasan panjang min/max:

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

Ekspresi Matematika Tidak Dihitung

Penyebab: Solver membaca teks "3+7" daripada menghitung jawaban "10".

Perbaikan: Setel calc=1:

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

Masalah Kualitas Gambar

CAPTCHA Terlalu Kecil

Masalah: Gambar yang sangat kecil (tinggi di bawah 50 piksel) kehilangan detail karakter.

Perbaikan: Ambil gambar dengan ukuran terbesar yang tersedia. Jika halaman menampilkan captcha kecil, periksa URL sumber dengan resolusi lebih tinggi:

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

Masalah: Beberapa CAPTCHA menggunakan GIF animasi di mana teks hanya terlihat di frame tertentu.

Perbaikan: Ekstrak frame yang benar:

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 dengan Background Transparan

Masalah: PNG dengan background transparan mungkin tidak ditampilkan dengan benar untuk OCR.

Perbaikan: Tambahkan background putih:

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

Melaporkan Solusi yang Salah

Jika CaptchaAI mengembalikan teks yang salah, laporkan:

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

Ini meningkatkan akurasi solver dan dapat mengembalikan biaya solve.


Checklist Peningkatan Akurasi

Parameter Kapan digunakan Efek
numeric=1 Hanya angka Menghilangkan kebingungan huruf/digit
numeric=2 Hanya huruf Menghilangkan kebingungan huruf/digit
min_len / max_len Panjang diketahui Mencegah karakter ekstra/hilang
regsense=1 Case penting Mempertahankan huruf besar/kecil
calc=1 Ekspresi matematika Mengembalikan jawaban yang dihitung
phrase=1 Berisi spasi Mengizinkan jawaban multi-kata
language=1 Teks Cyrillic Menggunakan character set yang benar
language=2 Teks Latin Menggunakan character set yang benar

Pertanyaan Umum

Mengapa CAPTCHA saya selalu salah satu karakter?

Gunakan min_len dan max_len untuk membatasi panjang jawaban. Verifikasi juga kualitas gambar — gambar buram menyebabkan misread.

Haruskah saya menggunakan upload file atau base64?

Keduanya bekerja sama baiknya. Base64 lebih praktis untuk penggunaan programatik; upload file lebih cocok untuk alat form multipart.

Bagaimana cara solve CAPTCHA dalam bahasa lain?

Atur parameter language: 1 untuk Cyrillic, 2 untuk Latin. Untuk script lain, hilangkan parameter dan biarkan solver mendeteksi secara otomatis.

Bisakah saya solve audio CAPTCHA dengan metode ini?

Tidak. Audio CAPTCHA memerlukan pendekatan solve yang berbeda. Periksa dokumentasi CaptchaAI untuk dukungan audio CAPTCHA.


Panduan Terkait

  • Cara Solve Image CAPTCHA dengan API
  • Referensi Kode Error CaptchaAI
  • CaptchaAI Quickstart
Komentar dinonaktifkan untuk artikel ini.