Mengintegrasikan CapSolver: Panduan untuk Penanganan CAPTCHA dalam Otomasi Browser AI

Emma Foster
How to use CapSolver
28-Jul-2026
TL;DR
-
Skyvern bertanggung jawab untuk membuka halaman web, mengisi formulir, dan melanjutkan alur bisnis, sementara CapSolver menangani pengembalian Token CAPTCHA.
-
Instal SDK resmi
capsolversecara langsung dan panggilcapsolver.solve()untuk menghindari implementasi logikacreateTaskdan polling sendiri. -
Setelah Token diperoleh, kembalikan ke halaman browser saat ini, lalu biarkan Skyvern mengirim formulir dan memverifikasi hasilnya.
Pendahuluan
Skyvern adalah platform otomatisasi browser AI yang dibangun di atas Playwright, model visi, dan Model Bahasa Besar (LLMs). Skyvern dapat memahami teks, formulir, dan elemen interaktif dalam halaman web, menyelesaikan tugas seperti navigasi halaman, klik tombol, input konten, unggah file, ekstraksi informasi, dan alur kerja multi-langkah berdasarkan instruksi dalam bahasa alami. Pendekatan ini mengurangi biaya pemeliharaan skrip yang disebabkan oleh perubahan struktur halaman, membuatnya ideal untuk skenario seperti login, pengiriman formulir, operasi back-office, dan pengumpulan data.
Ketika alur otomasi menghadapi tantangan CAPTCHA, Anda dapat memanggil SDK Python resmi CapSolver dengan memberikan parameter seperti alamat halaman saat ini, Site Key, dan jenis CAPTCHA. Setelah CapSolver menyelesaikan tugas, ia mengembalikan Token verifikasi yang sesuai. Program kemudian menggunakan Playwright untuk menulis Token ini ke bidang respons halaman saat ini, callback JavaScript, atau permintaan bisnis. Setelah verifikasi berhasil, Skyvern dapat melanjutkan mengeksekusi tugas yang diizinkan pengguna asli, seperti mengirim formulir, masuk ke halaman berikutnya, atau memeriksa hasil operasi akhir.
1. Menginstal Ketergantungan
Skyvern saat ini memerlukan Python 3.11, 3.12, atau 3.13. Instal Skyvern, SDK CapSolver, dan Chromium:
Bash
pip install "skyvern[local]"
pip install --upgrade capsolver
python -m playwright install chromium
2. Kode CapSolver
Python
# pip install --upgrade capsolver
# export CAPSOLVER_API_KEY='...'
import capsolver
# capsolver.api_key = "..."
solution = capsolver.solve({
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
})
print(solution)
Bila berhasil, hasil yang dikembalikan terutama menggunakan:
Python
token = solution["gRecaptchaResponse"]
Peran parameter:
websiteURL dan websiteKey harus konsisten dengan konfigurasi halaman saat ini.
3. Contoh Integrasi Skyvern
Berikut adalah contoh integrasi minimal. Skyvern terlebih dahulu membuka halaman dan mengisi formulir, lalu mengambil Token melalui SDK resmi, dan akhirnya mengembalikan Token ke halaman untuk pengiriman.
Python
import asyncio
import capsolver
from skyvern import Skyvern
TARGET_URL = "https://www.google.com/recaptcha/api2/demo"
WEBSITE_KEY = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
async def inject_token(page, token: str):
await page.evaluate(
"""
(token) => {
const textarea = document.getElementById('g-recaptcha-response');
if (textarea) {
textarea.value = token;
}
}
""",
token,
)
async def main():
skyvern = Skyvern.local()
browser = await skyvern.launch_local_browser(headless=False)
page = await browser.get_working_page()
try:
await page.goto(TARGET_URL)
solution = await asyncio.to_thread(
capsolver.solve,
{
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": TARGET_URL,
"websiteKey": WEBSITE_KEY,
},
)
token = solution["gRecaptchaResponse"]
await inject_token(page, token)
await page.act("Submit")
await page.validate("Verification successful... Great!")
finally:
await browser.close()
4. Cara Mengembalikan Token ke Halaman
CapSolver hanya bertanggung jawab untuk mengembalikan Token; ia tidak secara otomatis mengirim formulir bisnis situs target. Situs web yang berbeda menangani Token dengan cara yang berbeda, dengan metode umum termasuk:
-
Menulis ke bidang tersembunyi
g-recaptcha-response; -
Memanggil callback JavaScript yang dikonfigurasi di halaman;
-
Mengirim Token sebagai parameter antarmuka bisnis.
Fungsi inject_token() dalam contoh mencoba kedua metode bidang tersembunyi dan callback uji coba. Dalam penggunaan nyata, potongan kode ini harus disesuaikan sesuai dengan implementasi frontend situs web Anda.
5. Masalah Umum
Token dikembalikan, tetapi halaman tetap gagal
Periksa parameter berikut:
-
Apakah
websiteURLalamat halaman saat ini? -
Apakah
websiteKeydari situs saat ini? -
Apakah halaman diperbarui setelah mendapatkan Token?
-
Apakah Token diserahkan ke callback atau antarmuka bisnis halaman yang benar?
6. Menggunakan API CapSolver untuk Menyelesaikan ImageToText
Selain reCAPTCHA, Skyvern juga dapat bekerja sama dengan CapSolver untuk menangani CAPTCHA standar berbasis gambar ke teks. Mengambil contoh BotDetect CAPTCHA Demo: ID elemen gambar CAPTCHA adalah demoCaptcha_CaptchaImage, ID kotak input hasil adalah captchaCode, dan ID tombol validasi adalah validateCaptchaButton.

ImageToTextTask memerlukan konversi gambar CAPTCHA ke Base64 dan mengirimkannya melalui parameter body. Jika src gambar adalah URL Data, misalnya:
Plain Text
data:image/png;base64,iVBORw0KGgoAAA...
Ketika mengirimkannya ke CapSolver, tetapkan hanya konten Base64 setelah koma, tanpa prefix data:image/...;base64,. Berbeda dengan tugas jenis Token, ImageToTextTask mengembalikan hasil pengenalan langsung tanpa memerlukan polling tambahan getTaskResult.
Berikut adalah contoh integrasi Skyvern lengkap:
Python
import asyncio
import capsolver
from skyvern import Skyvern
TARGET_URL = "https://captcha.com/demos/features/captcha-demo.aspx"
async def main():
skyvern = Skyvern.local()
browser = await skyvern.launch_local_browser(headless=False)
page = await browser.get_working_page()
try:
await page.goto(TARGET_URL)
await page.locator("#demoCaptcha_CaptchaImage").wait_for()
# Baca URL Data gambar CAPTCHA.
image_src = await page.locator(
"#demoCaptcha_CaptchaImage"
).get_attribute("src")
if not image_src or "," not in image_src:
raise RuntimeError("Gambar CAPTCHA Base64 yang valid tidak ditemukan")
# Hapus prefix URL Data dan simpan hanya data Base64.
base64_image = image_src.split(",", 1)[1]
solution = await asyncio.to_thread(
capsolver.solve,
{
"type": "ImageToTextTask",
"websiteURL": TARGET_URL,
"module": "common",
"body": base64_image,
},
)
captcha_text = solution["text"]
print("Hasil pengenalan:", captcha_text)
await page.locator("#captchaCode").fill(captcha_text)
await page.locator("#validateCaptchaButton").click()
await page.wait_for_timeout(5000)
finally:
await browser.close()
if __name__ == "__main__":
asyncio.run(main())
Proses eksekusi kode dapat dirangkum sebagai berikut:
Plain Text
Skyvern membuka halaman CAPTCHA
-> Cari #demoCaptcha_CaptchaImage
-> Ekstrak dan bersihkan data gambar Base64
-> Panggil capsolver.solve(ImageToTextTask)
-> Baca solution["text"]
-> Isi ke #captchaCode
-> Klik #validateCaptchaButton
Memilih Model Pengenalan yang Tepat
module adalah parameter opsional; common dapat digunakan secara default. Jika CAPTCHA hanya berisi angka, Anda dapat menggunakan number; untuk beberapa gaya khusus, Anda juga dapat memilih model independen yang sesuai sesuai dokumentasi CapSolver untuk meningkatkan akurasi pengenalan.

Misalnya, ketika mengenali CAPTCHA berbasis angka, Anda dapat mengubah parameter tugas menjadi:
Python
solution = capsolver.solve({
"type": "ImageToTextTask",
"module": "number",
"images": [base64_image],
})
answers = solution["answers"]
Model number mendukung pengiriman beberapa gambar sekaligus, dan images dapat berisi hingga 9 string Base64. Untuk nama model lain dan jenis gambar yang sesuai, silakan merujuk ke Dokumentasi Resmi CapSolver ImageToTextTask.
7. Ringkasan
Pemilihan solusi teknis yang tepat untuk otomatisasi browser AI bergantung pada kompleksitas tugas, frekuensi perubahan halaman, dan mekanisme verifikasi situs target. Alat tradisional seperti Selenium dan Playwright cocok untuk alur kerja otomasi dengan struktur yang stabil dan jalur operasi yang jelas. Skyvern membangun di atas ini dengan memperkenalkan model visi dan LLM, membuatnya lebih cocok untuk tugas web di mana struktur halaman sering berubah, memerlukan pemahaman semantik, atau melibatkan operasi multi-langkah. Karena Skyvern mengontrol browser berdasarkan Playwright, ia dapat menyelesaikan navigasi halaman, pengisian formulir, klik tombol, dan ekstraksi data melalui bahasa alami. Ketika proses menghadapi tantangan CAPTCHA, pengembang dapat menggabungkan SDK resmi CapSolver untuk memperoleh Token verifikasi dan kemudian mengisi hasilnya kembali ke halaman saat ini, memungkinkan Skyvern melanjutkan operasi berikutnya seperti pengiriman formulir, transisi halaman, dan verifikasi hasil. Dengan menggabungkan Skyvern dan CapSolver, pengembang dapat membangun alur kerja otomatisasi browser yang lebih fleksibel, mudah dipelihara, dan skalabel, mengurangi biaya pemeliharaan selektor tradisional sambil meningkatkan efisiensi dan stabilitas tugas web kompleks. Menjelaskan dengan jelas lingkup otorisasi, melindungi API Keys, dan memverifikasi serta mencatat hasil otomatisasi adalah prasyarat penting untuk operasi proyek yang stabil.
Referensi
Dapatkan 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 pengisian ulang — tanpa batas.
Dapatkan sekarang di dashboard CapSolver Anda
Pertanyaan yang Sering Diajukan (FAQ)
Q1: Bagaimana menangani CAPTCHA dalam iframes?
A1: Pertama, pindah ke konteks iframe menggunakan page.frame_locator('iframe_selector') sebelum menyuntikkan token. Pastikan websiteURL yang dikirim ke CapSolver adalah alamat halaman induk, bukan alamat iframe.
Q2: Apa yang dilakukan jika situs menggunakan callback JavaScript khusus?
A2: Identifikasi nama fungsi callback (misalnya, onCaptchaResolved) dan jalankan melalui Playwright: await page.evaluate("onCaptchaResolved(token)", token).
Q3: Bagaimana meningkatkan tingkat pengenalan ImageToText?
A3: Gunakan parameter module yang spesifik (seperti number untuk CAPTCHA berbasis angka) dan pastikan gambar Base64 yang diekstrak jelas dan beresolusi tinggi.
Q4: Bagaimana mengamankan API Key?
A4: Jangan menyisipkan API Key secara langsung. Gunakan variabel lingkungan (misalnya, os.getenv("CAPSOLVER_API_KEY")) untuk memuatnya secara aman.
Q5: Apakah saya perlu mengimplementasikan mekanisme ulang?
A5: Ya, gunakan perpustakaan seperti tenacity untuk mengimplementasikan ulang eksponensial untuk capsolver.solve() untuk menangani masalah jaringan atau layanan sementara.
Q6: Bagaimana dengan masa berlaku Token?
A6: Token CAPTCHA berlaku singkat (misalnya, 2 menit). Suntikkan dan kirim token secara langsung setelah menerimanya dari CapSolver.
Q7: Apakah Skyvern dapat mengarahkan berbagai jenis CAPTCHA secara otomatis?
A7: Ya, Anda dapat menggunakan kemampuan visi Skyvern untuk mengidentifikasi jenis CAPTCHA terlebih dahulu, lalu secara dinamis membangun payload CapSolver yang sesuai (misalnya, beralih antara ReCaptchaV2TaskProxyLess dan ImageToTextTask).
Q8: Bagaimana lainnya visi Skyvern membantu?
A8: Ini memungkinkan pencarian elemen dinamis (menemukan CAPTCHA tanpa ID tetap), validasi pasca-pengiriman visual (memeriksa pesan keberhasilan), dan deteksi kesalahan visual untuk retry yang lebih cerdas.
Pernyataan Kepatuhan: Informasi yang diberikan di blog ini hanya untuk tujuan informasi. CapSolver berkomitmen untuk mematuhi semua hukum dan peraturan yang berlaku. Penggunaan jaringan CapSolver untuk kegiatan ilegal, penipuan, atau penyalahgunaan sangat dilarang dan akan diselidiki. Solusi penyelesaian captcha kami meningkatkan pengalaman pengguna sambil memastikan kepatuhan 100% dalam membantu menyelesaikan kesulitan captcha selama pengambilan data publik. Kami mendorong penggunaan layanan kami secara bertanggung jawab. Untuk informasi lebih lanjut, silakan kunjungi Syarat Layanan dan Kebijakan Privasi.
Lebih lanjut

CapSolver Python Core SDK vs HTTP API: Yang Harus Anda Gunakan?
Pilih SDK Python Core CapSolver atau API HTTP langsung berdasarkan dukungan tugas, akses halaman, penanganan respons, dan tanggung jawab yang dimiliki aplikasi Anda.

Nikolai Smirnov
16-Sep-2026

Pemantauan Pergeseran Tujuan Pencarian untuk Alur Kerja SEO AI
Bangun pemantauan pergeseran tujuan pencarian dengan data Search Console, pengamatan SERP yang terkendali, label tujuan, batas kepercayaan, bukti, dan otomatisasi yang aman.

Emma Foster
31-Aug-2026

Cara menambahkan Penyelesaian CAPTCHA Gumloop ke alur kerja web
Bangun penyelesaian CAPTCHA Gumloop dengan kontrak HTTP yang diverifikasi, cabang pemulihan yang dikendalikan, batas ulang coba, pemeriksaan kondisi browser, dan pengganti manusia.

Emma Foster
21-Aug-2026

Cara Menambahkan Pemecah CAPTCHA ke Alur Kerja Otomatisasi Formulir
Sebuah solver captcha otomasi formulir adalah komponen pemulihan kesalahan untuk alur kerja formulir yang diizinkan, bukan jalan pintas melewati otorisasi. CapSolver dapat menyediakan solusi reCAPTCHA melalui API tugas yang didokumentasikan sementara aplikasi Anda mempertahankan input, konteks browser, persetujuan, dan aturan pengiriman akhir. Urutan yang paling aman adalah deteksi, ambil gambar layar, buat satu tugas, poll dengan tenggat waktu, terapkan hasil dalam sesi yang sama, dan verifikasi status konfirmasi formulir itu sendiri. Artikel ini

Emma Foster
13-Aug-2026

Cara Mengelola CAPTCHA dalam Alur Kerja Otomasi RPA dengan Aman
Otomatisasi CAPTCHA RPA hanya dapat diandalkan ketika CAPTCHA menjadi state alur kerja yang jelas. CapSolver dapat menyediakan lapisan penanganan CAPTCHA melalui ekstensi browser atau API yang telah didokumentasikan, sementara platform RPA mengontrol cakupan proses, kredensial, waktu habis, dan validasi bisnis. Hal ini menghindari kegagalan umum di mana robot terus mengklik setelah verifikasi muncul, kehilangan status formulir, atau mengirim dua kali. Desain produksi berhenti pada deteksi, menunggu satu hasil yang terbatas, ver

Emma Foster
12-Aug-2026

Cara Mengatasi CAPTCHA dalam Pengujian QA Otomatis
Menangani CAPTCHA dalam pengujian QA otomatis dengan test fixtures yang dikontrol, integrasi browser CapSolver, pengulangan yang dibatasi, dan asersi yang dapat diandalkan.

Emma Foster
11-Aug-2026


