
Emma Foster
Machine Learning Engineer
Diterbitkan Sep 22, 2026
Diperbarui Sep 22, 2026 ยท min baca

Sebuah agen membuka halaman tetapi tidak dapat melanjutkan. Mungkin saja telah mencapai CAPTCHA, muatan halaman yang belum selesai, pembatasan kecepatan, atau kesalahan formulir biasa. Memanggil solver secara langsung dapat mengubah masalah browser sederhana menjadi urutan permintaan berulang yang membingungkan.
CapSolver menyediakan metode deteksi browser yang telah didokumentasikan yang membantu mengidentifikasi jenis CAPTCHA yang didukung sebelum menyelesaikan. Urutan yang berguna adalah memeriksa halaman saat ini, mengklasifikasikan apa yang ditemukan, memilih alat yang relevan, dan memeriksa hasil akhir. Panduan ini memisahkan langkah-langkah tersebut dan menggunakan contoh kecil yang dapat dijalankan. Fokusnya pada lingkungan QA yang dikuasai, alur kerja browser yang disetujui, dan halaman demo publik, dengan batas yang jelas antara mendeteksi tantangan dan menyelesaikan tugas aplikasi.
Gunakan metode deteksi SDK Inti ketika aplikasi Anda sudah mengontrol halaman browser yang kompatibel.
Referensi SDK Inti mendokumentasikan empat operasi terkait: detect(page) mengembalikan jenis CAPTCHA yang dideteksi; get_captcha_info(page) membaca parameter yang struktur; solve(info) meminta solusi; dan solve_on_page(page) menggabungkan deteksi berbasis browser, penyelesaian, dan pengisian kembali.
Untuk pemeriksaan deteksi, panggil metode deteksi. Jangan gunakan metode penyelesaian penuh hanya untuk mengetahui apakah halaman mengandung tantangan. Mempertahankan pilihan ini secara eksplisit membuat lebih mudah memahami langkah mana yang memerlukan kredensial layanan penyelesaian dan langkah mana hanya memeriksa status browser.
SDK mengembalikan nilai enum jenis CAPTCHA daripada label sembarangan yang mungkin digunakan aplikasi dalam pesan statusnya sendiri. Baca nilai yang didokumentasikan alih-alih membuat peta dari representasi string.
Ringkasan CapSolver untuk Agen AI menjelaskan bahwa deteksi dan persiapan parameter terjadi di sisi Anda, sementara pengenalan sebenarnya menggunakan layanan. Perbedaan ini penting saat membaca log: deteksi lokal yang berhasil bukanlah bukti bahwa permintaan penyelesaian telah dikirim.
Mulai dengan halaman demo resmi sehingga Anda dapat memeriksa akses browser dan metode deteksi tanpa terlibat dalam alur kerja bisnis Anda.
Contoh di bawah ini menyesuaikan penggunaan resmi SDK Inti create_capsolver dan detect. Kode tambahan membuka dan menutup browser Playwright, menunggu frame widget demo, dan mencetak nilai enum yang dikembalikan.
Lingkungan yang diuji menggunakan Python 3.12, capsolver-core==0.1.1, dan playwright==1.63.0. Instal paket-paket ini dalam lingkungan terisolasi dan instal browser Chromium yang sesuai:
python -m pip install "capsolver-core[playwright]==0.1.1" "playwright==1.63.0"
python -m playwright install chromium --only-shell
Panduan instalasi Python Playwright menjelaskan langkah-langkah instalasi paket dan browser yang terpisah. Instalasi paket Python saja tidak menjamin kehadiran eksekusi browser yang sesuai.
Simpan ini sebagai detect_demo.py:
import asyncio
from capsolver_core import create_capsolver
from playwright.async_api import async_playwright
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch()
try:
page = await browser.new_page()
await page.goto(
"https://www.google.com/recaptcha/api2/demo",
wait_until="domcontentloaded",
)
await page.wait_for_selector('iframe[title="reCAPTCHA"]')
async with create_capsolver(api_key="YOUR_API_KEY") as cap:
types = await cap.detect(page)
print([item.value for item in types])
finally:
await browser.close()
asyncio.run(main())
Jalankan dengan python detect_demo.py. Dalam uji coba verifikasi, hasil yang sebenarnya dicetak adalah ['reCaptchaV2'].
Kunci placeholder cukup karena contoh ini hanya melakukan deteksi. Ini tidak memanggil API penyelesaian, mengklik tantangan, mengirimkan formulir demo, atau memverifikasi token. Operasi penyelesaian nyata memerlukan kredensial layanan yang sesuai dan input tugas.
Jalanan ini memverifikasi jalur deteksi yang ditampilkan pada halaman tersebut pada saat pengujian. Ini tidak menetapkan cakupan deteksi universal atau tingkat keberhasilan penyelesaian.
Anggap deteksi sebagai pengamatan terhadap halaman pada momen tertentu.
Halaman dapat menyelesaikan navigasi awal sebelum widget atau kontrol aplikasinya muncul. Dalam contoh, domcontentloaded diikuti dengan menunggu frame demo yang diketahui. Untuk halaman lain, pilih kondisi kesiapan yang sesuai dengan antarmuka sebenarnya.
API Halaman Playwright menjelaskan perilaku navigasi halaman dan menunggu elemen. Pemeriksaan kesiapan harus membantu menetapkan state mana yang sedang diperiksa, bukan menambahkan tidur yang panjang dan tidak kondisional.
Ketika detektor mengembalikan jenis, catat cukup konteks untuk menghubungkan hasil ini dengan tugas yang terganggu: halaman yang disetujui, waktu, dan deskripsi singkat operasi yang tertunda. Anda tidak perlu kerangka state-machine besar untuk memulai.
Ketika detektor mengembalikan daftar kosong, periksa halaman sebelum melanjutkan. Konten mungkin biasa, masih dimuat, tidak didukung oleh detektor ini, atau terpengaruh oleh masalah lain. "Tidak ada yang terdeteksi" dan "tugas berhasil" adalah pernyataan yang terpisah.
Elemen HTML sederhana dengan kelas yang menyerupai CAPTCHA juga tidak selalu sama dengan widget yang diinisialisasi. Uji perilaku halaman sebenarnya, terutama setelah perubahan pada cara situs merender kontrol verifikasi.
Kirim halaman ke jalur penanganan CAPTCHA hanya ketika bukti mendukung klasifikasi ini.
CAPTCHA adalah satu kemungkinan gangguan. Sesi yang kedaluwarsa, bidang formulir tidak valid, izin yang hilang, atau kesalahan jaringan memerlukan respons yang berbeda. Jika halaman menampilkan beberapa pesan, periksa yang mana yang menghentikan operasi yang diinginkan.
Contohnya, HTTP 429 menunjukkan pembatasan kecepatan permintaan dan mungkin mencakup penundaan ulang. Ini bukan, sendirian, bukti bahwa CAPTCHA hadir. Detektor dan respons aplikasi harus memberi tahu bagian berbeda dari keputusan.
Pertahankan tindakan berikutnya sederhana:
Ini adalah batas praktis yang dijelaskan dalam artikel terkait tentang tugas agen AI yang terjebak pada CAPTCHA. Deteksi harus membuat keputusan berikutnya lebih jelas, bukan menciptakan loop lain di sekitar setiap halaman yang gagal.
Tukarkan Kode Bonus CapSolver Anda
Tingkatkan anggaran otomatisasi Anda secara instan!
Gunakan kode bonus CAP26 saat menambahkan dana ke akun CapSolver Anda untuk mendapatkan tambahan 5% bonus pada setiap penyetoran โ tanpa batas.
Tukarkan sekarang di Dasbor CapSolver Anda
Pilih lapisan integrasi yang sesuai dengan aplikasi yang sudah mengontrol tugas.
Skrip browser Python dapat menggunakan SDK Inti secara langsung. Aplikasi yang didorong LLM dapat mengekspos operasi yang didukung melalui adapter alat agen. Klien MCP memerlukan layanan MCP yang dikonfigurasi dan akses ke kemampuan yang sebenarnya ditawarkan layanan tersebut.
Dokumentasi agent-tools menjelaskan hubungan adapter terhadap mesin inti. Menambahkan deskripsi alat ke dalam prompt tidak menghubungkannya secara otomatis ke browser. Eksekutor masih memerlukan konteks runtime yang diperlukan.
Untuk implementasi pemula, pertahankan deteksi dan tindakan berikutnya yang disetujui dekat bersama. Jika browser telah menavigasi sejak deteksi, periksa status halaman baru alih-alih menggunakan parameter lama tanpa pemeriksaan.
Jangan tambahkan setiap metode yang tersedia ke agen hanya karena tersedia. Ekspos operasi yang diperlukan oleh tugas dan tentukan kapan aplikasi harus berhenti. Mempertahankan pilihan alat kecil membuat pemecahan masalah lebih mudah.
Verifikasi setiap tahap terhadap hasil yang diharapkan.
Deteksi harus melaporkan apa yang ditemukan SDK. Pembacaan parameter harus menghasilkan bidang yang diperlukan untuk tugas yang dipilih. Panggilan penyelesaian harus mengembalikan hasil yang didokumentasikan atau kesalahan. Alur kerja browser kemudian harus mencapai halaman, data, atau konfirmasi yang diharapkan.
Untuk bacaan katalog yang disetujui, keberhasilan berarti mendapatkan data item yang diminta. Untuk formulir uji coba, keberhasilan berarti mengamati konfirmasi aplikasi. Detektor mengembalikan jenis tidak memenuhi salah satu kondisi tersebut.
Gunakan kumpulan kecil pemeriksaan saat memvalidasi integrasi Anda:
Pemeriksaan ini menguji keputusan aplikasi alih-alih menjamin bahwa setiap tantangan dunia nyata didukung. Pertahankan output detektor sebenarnya untuk debugging alih-alih menggantinya dengan pesan "CAPTCHA diperbaiki" umum.
Berikan setiap tugas titik berhenti yang jelas dan periksa gangguan berulang sebelum mencoba pekerjaan lebih lanjut.
Jika tantangan yang sama muncul lagi, periksa apakah halaman berubah, handler selesai, dan aplikasi menerima hasilnya. Deteksi berulang berbeda dari menciptakan tugas penyelesaian berbayar lainnya. Lacak tindakan ini secara terpisah sehingga pengamatan yang tidak berbahaya tidak secara diam-diam menjadi pengiriman berulang.
Catatan diagnostik singkat biasanya cukup: identitas halaman, jenis yang terdeteksi, hasil handler, dan hasil aplikasi. Panduan logging OWASP menyarankan melindungi informasi sensitif dalam log operasional. Keluarkan kunci API, cookie sesi, token solusi mentah, dan konten halaman yang tidak perlu.
Saat beralih dari uji coba tunggal ke pekerjaan yang direncanakan, pertahankan pemeriksaan yang sama. Tingkatkan cakupan secara bertahap, tinjau kegagalan berdasarkan penyebab, dan berhenti jika tugas yang disetujui atau kondisi akses berubah. Kompleksitas harus mengikuti kebutuhan yang telah terbukti.
Deteksi yang andal memberi agen bukti yang lebih baik untuk tindakan berikutnya. Ini tidak menggantikan penyelesaian, pemeriksaan status browser, atau konfirmasi dari aplikasi.
Mulai dengan contoh kecil, sesuaikan pemeriksaan kesiapan dengan halaman yang disetujui, dan gunakan CapSolver untuk langkah tantangan yang didukung ketika diperlukan. Pertahankan urutan sederhana: amati, klasifikasikan, tangani, verifikasi.
P: Bagaimana agen AI mendeteksi CAPTCHA?
Aplikasi dapat memeriksa halaman browser langsung dengan metode deteksi yang didukung dan mengembalikan bukti tersebut ke agen. SDK Inti CapSolver mendokumentasikan metode deteksi yang mengembalikan jenis CAPTCHA yang dikenali.
P: Apakah deteksi memerlukan permintaan penyelesaian berbayar?
Panggilan deteksi yang ditunjukkan memeriksa halaman browser tanpa memanggil layanan penyelesaian. Penyelesaian adalah operasi terpisah yang memerlukan kredensial dan input tugas yang sesuai.
P: Apa artinya hasil deteksi kosong?
Artinya tidak ada jenis yang didukung ditemukan dalam status halaman yang diperiksa. Periksa kesiapan, kesalahan halaman, dan cakupan detektor sebelum menganggap hasil ini sebagai izin untuk melanjutkan.
P: Apakah contoh ini dapat mendeteksi semua CAPTCHA di semua situs?
Tidak. Contoh ini telah diverifikasi terhadap satu halaman demo reCAPTCHA resmi. Jenis tantangan lain, pola render, dan konteks browser memerlukan pemeriksaan sendiri.
P: Kapan agen harus berhenti?
Berhenti ketika status halaman tidak jelas, alur kerja keluar dari cakupan yang disetujui, atau penanganan berulang menghasilkan tidak ada kemajuan yang dikonfirmasi. Laporkan alasan yang diamati alih-alih terus berjalan dalam lingkaran tak terbatas.

Emma Foster
Machine Learning Engineer
Where machine learning meets practical AI tooling.
TENTANG PENULIS
Bandingkan penggunaan browser dalam penanganan CAPTCHA di browser lokal dan cloud, pelajari di mana CapSolver cocok, dan pilih pengaturan yang praktis untuk alur kerja agen yang diotorisasi.

Cari CapSolver MCP di Registry MCP Resmi, pasang versi 0.1.3 dengan uvx atau pip, konfigurasi klien lokal, dan verifikasi alat stdio.
