
Adélia Cruz
Neural Network Developer

Jika ada satu hal yang telah saya pelajari selama bertahun-tahun sebagai penggemar web scraping, itu adalah tantangan CAPTCHA seperti penjaga gerbang internet. Pertemuan pertama saya dengan CAPTCHA gambar terasa seperti menabrak tembok bata. Saya telah menghabiskan berjam-jam membangun scraper saya, dan tepat ketika saya akan memanen data, saya disambut dengan foto-foto lampu lalu lintas, penyeberangan, dan etalase toko yang buram. Saya menyadari saat itu bahwa memecahkan CAPTCHA gambar bukan hanya tantangan teknis—itu adalah ritual bagi setiap scraper web yang serius.
Sekarang, di tahun 2025, CAPTCHA gambar telah berevolusi menjadi mekanisme yang canggih, menggunakan AI untuk menggagalkan bahkan scraper paling canggih sekalipun. Tetapi dengan alat, teknik, dan pola pikir yang tepat, mereka tidak lagi tak teratasi. Di blog ini, saya akan berbagi apa yang telah saya pelajari tentang memecahkan CAPTCHA gambar secara efektif, dari pengalaman pribadi hingga solusi terbaru.
Saat melakukan web scraping, salah satu jenis CAPTCHA yang paling umum dijumpai adalah CAPTCHA gambar, yang dirancang untuk mencegah bot otomatis mengakses situs web. Dengan kemajuan teknologi, sistem CAPTCHA terus berkembang dan menjadi lebih kompleks. Salah satu sistem CAPTCHA gambar yang paling banyak dijumpai adalah reCAPTCHA Google.
reCAPTCHA meminta pengguna untuk memilih gambar yang berisi objek tertentu, seperti lampu lalu lintas, sepeda, atau penyeberangan. Jenis tantangan pengenalan gambar ini sangat efektif dalam membedakan antara pengguna manusia dan skrip otomatis. Meskipun kotak centang "Saya bukan robot" dulunya adalah standar, versi terbaru mengandalkan tantangan berbasis gambar, yang semakin umum. Pengguna diharuskan untuk memilih gambar yang benar untuk menyelesaikan verifikasi dan membuktikan bahwa mereka bukan bot.
Dalam dunia web scraping, CAPTCHA gambar bukan hanya hambatan; mereka adalah tantangan canggih yang dirancang untuk membedakan antara manusia dan bot. Di antara banyak varian, dua hal menonjol sebagai yang paling sering dijumpai: reCAPTCHA Google dan CAPTCHA ImageToText. Setiap jenis menghadirkan rintangan unik, tetapi dengan pendekatan yang tepat, mereka dapat dipecahkan secara efektif.
Pertama, kita perlu mengimpor pustaka requests, yang memungkinkan kita untuk membuat permintaan HTTP untuk berinteraksi dengan API CapSolver.
import requests
Untuk berkomunikasi dengan API CapSolver, Anda perlu memberikan kunci API. Kunci ini biasanya dibuat saat Anda mendaftar akun dengan CapSolver. Di sini, kita mendefinisikan API_URL untuk menentukan titik akhir API dan API_KEY untuk mengautentikasi akun Anda.
API_URL = "https://api.capsolver.com/createTask"
API_KEY = "YOUR_API_KEY"
Payload adalah kamus yang berisi semua informasi yang diperlukan untuk permintaan tersebut. Dalam hal ini, kita menentukan jenis CAPTCHA (ReCaptchaV2Classification), URL situs web target, dan objek yang akan dikenali (misalnya, lampu lalu lintas). Pastikan untuk mengganti URL situs web target dan objek yang akan dikenali dengan nilai sebenarnya untuk kasus Anda.
payload = {
"clientKey": API_KEY, # Ganti dengan kunci API Anda
"task": {
"type": "ReCaptchaV2Classification", # tipe reCAPTCHA v2
"websiteURL": "https://target-website.com", # URL situs web target
"question": "/m/04_sv" # Objek yang akan dikenali (misalnya, lampu lalu lintas)
}
}
Kita menggunakan requests.post untuk mengirim permintaan, meneruskan payload yang telah dibuat sebagai data JSON. Objek response akan berisi data respons API.
response = requests.post(API_URL, json=payload)
Periksa kode status respons untuk memastikan permintaan berhasil. Jika berhasil, kita mengurai respons JSON dan memeriksa errorId dan status untuk melihat apakah solusinya sudah siap. Jika tantangan telah terpecahkan, kita mengekstrak dan menampilkan solusinya.
if response.status_code == 200:
result = response.json()
if result.get("errorId") == 0 and result.get("status") == "ready":
print("Solution:", result["solution"]) # Output solusi
else:
print("Error:", result.get("errorDescription")) # Output pesan kesalahan
else:
print(f"Failed with status code: {response.status_code}") # Jika permintaan gagal, output kode status
Di sini, kita menggunakan pustaka capsolver, yang disediakan oleh CapSolver untuk berinteraksi dengan API mereka. Kita juga mengimpor os dan pathlib untuk mengelola jalur file untuk gambar CAPTCHA.
import os
from pathlib import Path
import capsolver
Seperti halnya reCAPTCHA, pertama-tama kita mengatur kunci API Anda untuk autentikasi dengan layanan CapSolver.
capsolver.api_key = "YOUR_API_KEY"
Anggaplah Anda telah mengunduh gambar CAPTCHA dan menyimpannya secara lokal. Kita menggunakan pathlib untuk menentukan jalur file ke gambar tersebut.
# Dapatkan jalur ke direktori skrip saat ini dan tentukan jalur file gambar CAPTCHA
img_path = os.path.join(Path(__file__).resolve().parent, "captcha_image.jpg")
Selanjutnya, kita membuka file gambar CAPTCHA dalam mode biner dan mengkodekannya ke base64, yang diperlukan untuk mengirimkannya ke CapSolver untuk diproses.
with open(img_path, 'rb') as f:
encoded_image = f.read().encode("base64") # Encode gambar ke base64
Sekarang, kita memanggil capsolver.solve() untuk mengajukan tugas CAPTCHA ImageToText, meneruskan gambar yang telah dienkode base64 sebagai bagian dari permintaan. Kita menentukan jenis tugas sebagai ImageToTextTask dan menggunakan modul OCR general untuk pengenalan teks.
solution = capsolver.solve({
"type": "ImageToTextTask", # Tetapkan jenis tugas ke ImageToText
"module": "general", # Gunakan modul OCR umum
"body": encoded_image # Lewatkan gambar yang telah dienkode base64
})
Terakhir, kita mengeluarkan solusi CAPTCHA yang didekode yang dikembalikan oleh CapSolver.
print("CAPTCHA Solution:", solution)
Klaim Kode Bonus Anda untuk solusi captcha teratas; CapSolver: recapv2. Setelah menukarkannya, Anda akan mendapatkan bonus tambahan 5% setelah setiap pengisian ulang, Tidak Terbatas.
Dengan mengikuti langkah-langkah ini, Anda dapat dengan mudah memecahkan dua jenis CAPTCHA gambar umum: reCAPTCHA Google dan CAPTCHA ImageToText. Baik Anda berurusan dengan reCAPTCHAs yang dibuat secara dinamis atau tantangan teks yang terdistorsi, API CapSolver menyediakan solusi yang efisien dan otomatis.
Metode ini akan secara signifikan meningkatkan efisiensi dan keandalan tugas web scraping Anda. Seperti biasa, pastikan bahwa aktivitas scraping Anda mematuhi standar hukum dan etika untuk menjaga integritas pekerjaan Anda.
Di tahun 2025, memecahkan CAPTCHA bukan hanya keterampilan—itu adalah kebutuhan bagi setiap scraper yang ingin tetap unggul dalam permainan.
Pelajari cara menyelesaikan tantangan AWS WAF dan CAPTCHA tanpa menggunakan browser. Gunakan API CapSolver untuk menghasilkan token dan mengelak kode status 405.

Bangun pengambilan data web di Linux dengan Python, proxies, dan penanganan CAPTCHA. Panduan pengembang praktis yang mencakup Scrapy, Playwright, CapSolver, dan pipa data.

Pelajari apa yang memicu Kesalahan Cloudflare 1020 Akses Ditolak, bagaimana Firewall Aplikasi Web dan deteksi bot bekerja, dan bagaimana pengembang dapat mengurangi kesalahan positif dalam alur kerja otomatis yang sah.
