
Emma Foster
Machine Learning Engineer

from cloakbrowser import launch.CloakBrowser adalah paket browser berbasis Chromium untuk otomasi Playwright dan Puppeteer. Repositori resmi menjelaskan perubahan tingkat sumber pada sinyal browser seperti canvas, WebGL, audio, font, GPU, layar, WebRTC, dan perilaku terkait otomasi. Launcher Python mengembalikan objek Playwright Browser, sehingga metode yang dikenal seperti new_page(), locator, evaluate(), klik, dan operasi formulir tetap tersedia.
CloakBrowser tidak menyelesaikan CAPTCHA. CapSolver menyediakan layanan tersebut: aplikasi Anda membuat tugas dengan parameter tantangan, menerima solusi, dan menggunakan halaman saat ini untuk mengirimkannya. Batas ini penting karena manajemen lingkungan browser dan penanganan CAPTCHA memiliki input dan mode kegagalan yang berbeda.
Tanggung jawabnya seperti ini:
CloakBrowser
-> menjalankan Chromium dan mempertahankan cookies, proxy, halaman, dan konteks browser
-> membaca parameter tantangan yang ditampilkan ke sesi saat ini
CapSolver
-> menerima tipe tugas yang didukung dan parameter tantangan yang diperlukan
-> mengembalikan token atau hasil pengenalan gambar
Playwright API
-> mengembalikan hasil ke halaman yang sama
-> memanggil callback yang diharapkan atau mengirimkan formulir
-> memverifikasi respons halaman atau aplikasi akhir
Jika Anda membutuhkan peninjauan Playwright sebelum mengintegrasikan kedua layanan ini, lihat glosari Playwright dan panduan otomasi browser Playwright.
Gunakan alur kerja ini hanya pada situs web dan aplikasi yang Anda miliki atau diizinkan untuk diuji atau otomatisasi. Anda akan membutuhkan:
Instal paket Python:
pip install cloakbrowser capsolver
Untuk lisensi CloakBrowser, repositori saat ini mendokumentasikan cloakbrowser login untuk setup interaktif dan variabel lingkungan CLOAKBROWSER_LICENSE_KEY untuk CI atau server. Pertahankan kredensial vendor di luar kontrol sumber. Variabel lingkungan atau manajer rahasia lebih aman daripada mengirimkan kunci literal.
Contoh minimal berikut membuka halaman, membaca judulnya, dan menutup browser:
from cloakbrowser import launch
browser = launch(
headless=False,
humanize=True,
license_key="cb_...",
)
page = browser.new_page()
page.goto("https://example.com", wait_until="domcontentloaded")
print(page.title())
browser.close()
Opsi launcher mengontrol lingkungan browser:
| Parameter | Tujuan |
|---|---|
headless |
Menjalankan dengan atau tanpa jendela browser yang terlihat. |
humanize |
Mengaktifkan perilaku interaksi yang dijelaskan CloakBrowser. |
proxy |
Mengarahkan sesi browser melalui proxy yang dikonfigurasi. |
geoip |
Menyelaraskan pengaturan browser yang terkait lokasi saat setup yang dipilih mendukungnya. |
| Pengaturan locale dan zona waktu | Memastikan sinyal bahasa dan waktu konsisten dengan sesi. |
license_key |
Menyediakan lisensi CloakBrowser saat tidak dimuat dari lingkungan atau status login. |
Untuk tantangan yang terikat sesi, hindari mengubah proxy, user agent, cookies, atau konteks browser antara membaca tantangan dan mengirimkan solusinya. FAQ CapSolver tentang fingerprinting browser dalam keamanan web menjelaskan mengapa beberapa sinyal browser dapat dievaluasi bersama.
Alur dasar SDK Python mengatur kunci API dan mengirimkan objek tugas yang didukung. Contoh ini menggunakan nilai demo reCAPTCHA v2 Google:
import capsolver
capsolver.api_key = "CAP-..."
solution = capsolver.solve(
{
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": "https://www.google.com/recaptcha/api2/demo",
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
}
)
token = solution.get("gRecaptchaResponse")
if not isinstance(token, str) or not token:
raise RuntimeError(f"CapSolver tidak mengembalikan token reCAPTCHA: {solution}")
print("Token diterima")
Bidang penting adalah:
| Bidang | Makna |
|---|---|
type |
Jenis tugas CapSolver yang sesuai dengan tantangan. |
websiteURL |
URL lengkap halaman di mana tantangan muncul. |
websiteKey |
Kunci situs yang ditemukan dalam integrasi halaman. |
isInvisible |
Bendera opsional yang hanya digunakan saat halaman menerapkan varian tak terlihat. |
Periksa dokumentasi reCAPTCHA v2 CapSolver sebelum deployment produksi, dan gunakan nilai dari halaman aktif alih-alih menyalin parameter demo. Panduan penyelesaian reCAPTCHA v2 yang lebih panjang menutupi pemilihan tugas dan bidang respons dalam detail lebih lanjut.
Klaim 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.
Klaim sekarang di Dasbor CapSolver Anda
Contoh lengkap di bawah ini mempertahankan navigasi dan pengiriman token di dalam satu halaman CloakBrowser. Pemilih CSS dan perilaku pengiriman spesifik untuk demo publik; aplikasi nyata mungkin menggunakan callback, bidang yang dikelola framework, atau alur formulir lainnya.
import re
import capsolver
from cloakbrowser import launch
def inject_recaptcha_token(page, token):
if not isinstance(token, str) or not token:
raise ValueError("Token reCAPTCHA yang tidak kosong diperlukan")
page.evaluate(
"""
(token) => {
const textarea = document.getElementById('g-recaptcha-response');
if (!textarea) {
throw new Error('g-recaptcha-response tidak ditemukan');
}
textarea.value = token;
}
""",
token,
)
with page.expect_navigation(
wait_until="domcontentloaded",
timeout=30_000,
):
page.click("#recaptcha-demo-submit")
return page.content()
def main():
capsolver.api_key = "CAP-..." # KUNCI_API_CAPSOLVER_ANDA
browser = launch(
license_key="cb_...", # KUNCI_LISIENSI_CLOAKBROWSER_ANDA
headless=False,
locale="en-US",
)
try:
page = browser.new_page()
page.goto(
"https://www.google.com/recaptcha/api2/demo",
wait_until="domcontentloaded",
timeout=60_000,
)
solution = capsolver.solve(
{
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": page.url,
"websiteKey": "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-",
}
)
token = solution.get("gRecaptchaResponse")
result_page = inject_recaptcha_token(page, token)
match = re.search(
r'<div class="recaptcha-success">(.*?)</div>',
result_page,
)
print(match.group(1) if match else "Verifikasi gagal")
finally:
browser.close()
if __name__ == "__main__":
main()
Jalankan sebagai skrip Python biasa:
python cloakbrowser-capsolver.py
Dalam produksi, muat kunci dari variabel lingkungan, tambahkan retry terbatas di sekitar kegagalan API atau navigasi sementara, log ID tugas CapSolver tanpa mengungkap rahasia, dan validasi hasil bisnis akhir. CapSolver juga menyediakan FAQ yang fokus pada integrasi penyelesaian CAPTCHA dengan Playwright atau Puppeteer.
Beberapa alur kerja pengujian yang diizinkan menampilkan CAPTCHA sebagai gambar alih-alih widget berbasis token. Dalam kasus ini, tangkap atau ekstrak gambar, konversi ke Base64 tanpa awalan Data URL, dan kirimkan ke ImageToTextTask.
Gambar berikut dari alur kerja asli menunjukkan elemen gambar dan bidang masukan pada demo fitur BotDetect:

import capsolver
from cloakbrowser import launch
TARGET_URL = "https://captcha.com/demos/features/captcha-demo.aspx"
browser = launch(headless=False, humanize=True)
try:
page = browser.new_page()
page.goto(TARGET_URL, wait_until="domcontentloaded")
image_src = page.locator("#demoCaptcha_CaptchaImage").get_attribute("src")
if not image_src or "," not in image_src:
raise RuntimeError("Gambar CAPTCHA bukan Data URL")
base64_image = image_src.split(",", 1)[1].replace("\n", "")
solution = capsolver.solve(
{
"type": "ImageToTextTask",
"websiteURL": page.url,
"module": "common",
"body": base64_image,
}
)
text = solution.get("text")
if not isinstance(text, str) or not text:
raise RuntimeError(f"CapSolver tidak mengembalikan teks OCR: {solution}")
page.locator("#captchaCode").fill(text)
page.locator("#validateCaptchaButton").click()
finally:
browser.close()
Pemilih secara sengaja terkait dengan halaman demo. Periksa halaman target yang diizinkan dan gunakan pemilih gambar, input, dan submit yang sebenarnya.
ImageToTextTask dapat menggunakan modul berbeda untuk format gambar yang didukung. Daftar modul asli mencakup ini, yang disimpan di sini untuk referensi:

Ketika modul yang didukung menerima beberapa gambar, kirimkan array yang didokumentasikan untuk modul tersebut dan baca jawaban yang sesuai:
solution = capsolver.solve(
{
"type": "ImageToTextTask",
"module": "number",
"images": [base64_image],
}
)
answers = solution["answers"]
Nama modul, bidang permintaan, dan format yang didukung dapat berubah, jadi periksa terhadap dokumentasi ImageToTextTask saat ini. Untuk pola API Python yang lebih luas, lihat cara mengintegrasikan API penyelesaian CAPTCHA dalam Python.
Arsitektur browser tetap sama, tetapi tugas CapSolver dan parameter halaman harus sesuai dengan implementasi v3. Secara khusus:
Jangan buka halaman baru tanpa cookies dan state sesi asli hanya untuk mengirimkan token. Ini memecah konteks yang mungkin digunakan aplikasi target saat mengevaluasi hasil.
Kode ini menjalankan Chromium yang dikemas Playwright, bukan CloakBrowser:
from playwright.sync_api import sync_playwright
pw = sync_playwright().start()
browser = pw.chromium.launch()
Gunakan launcher CloakBrowser alih-alih:
from cloakbrowser import launch
browser = launch()
Menurut repositori CloakBrowser, playwright install-deps chromium mungkin berguna di Linux saat perpustakaan sistem yang dibagikan hilang. Menjalankan playwright install chromium berbeda: ini mengunduh browser Playwright dan tidak memperbaiki jalur launch CloakBrowser.
Periksa setiap batas dalam urutan:
websiteURL adalah URL lengkap yang digunakan oleh halaman aktif;websiteKey milik halaman tersebut;Pastikan body gambar valid Base64, awalan Data URL telah dihapus, modul yang dipilih mendukung gambar, dan bidang respons sesuai dengan dokumentasi saat ini. Tangkap kode kesalahan dan ID tugas CapSolver untuk debugging, tetapi jangan log kunci API atau data halaman sensitif.
Tidak semua pengiriman menyebabkan navigasi penuh. Beberapa situs memperbarui DOM atau membuat permintaan XHR alih-alih. Ganti expect_navigation() dengan kondisi yang sebenarnya mewakili keberhasilan: locator yang menjadi terlihat, perubahan URL, peristiwa respons, atau elemen status aplikasi spesifik. Referensi API Browser Playwright resmi adalah sumber terbaik untuk perilaku API saat ini.
Sistem CAPTCHA adalah mekanisme kontrol akses dan pencegahan penyalahgunaan. Gunakan CapSolver dan CloakBrowser hanya untuk otomatisasi yang sah pada sistem yang Anda miliki atau memiliki izin eksplisit untuk diuji. Hormati ketentuan situs, batas laju, persyaratan privasi, dan hukum yang berlaku. Jangan gunakan otomatisasi untuk mengakses data pribadi, menciptakan lalu lintas yang tidak pantas, atau mengganggu pengguna lain.
Untuk QA dan pemantauan, lebih baik menggunakan lingkungan pengujian khusus dan kunci uji penyedia ketika tersedia. Catat URL halaman, jenis tugas, ID tugas, waktu yang berlalu, dan status aplikasi akhir sehingga kegagalan dapat dilacak tanpa menyimpan kredensial atau data pribadi. Panduan otomatisasi CAPTCHA untuk pengujian QA memberikan pola tambahan untuk alur kerja pengujian yang terkendali.
CloakBrowser dapat menyediakan lingkungan browser yang kompatibel dengan Playwright, sementara CapSolver menangani tugas CAPTCHA yang didukung. Memisahkan tanggung jawab tersebut membuat alur kerja lebih mudah diuji: baca tantangan dari halaman aktif, minta solusi yang sesuai, kirimkan dalam konteks yang sama, dan verifikasi hasil aplikasi.
Coba CapSolver untuk alur kerja CloakBrowser atau Playwright yang sah, dan konsultasikan dokumentasi saat ini sebelum memindahkan kode demo ke produksi.
Q: Apakah CloakBrowser adalah solver CAPTCHA?
Tidak. CloakBrowser menyediakan browser Chromium dan antarmuka otomatisasi yang kompatibel dengan Playwright. Layanan terpisah seperti CapSolver menangani tugas CAPTCHA yang didukung.
Q: Apakah skrip Playwright yang ada dapat menggunakan CloakBrowser?
Biasanya, ya. Ganti jalur inisialisasi browser dengan from cloakbrowser import launch, lalu terus gunakan Browser Playwright yang dikembalikan, halaman, lokator, dan metode evaluasi. Uji opsi dan ketergantungan khusus browser di lingkungan Anda.
Q: Mengapa hasil CAPTCHA harus dikirimkan dalam konteks browser yang sama?
Aplikasi target mungkin mengaitkan tantangan dengan cookie, alamat proxy, sinyal browser, URL, atau data sesi lainnya. Beralih konteks dapat membuat parameter tantangan yang sebenarnya tidak konsisten.
Q: Di mana saya dapat menemukan kunci situs reCAPTCHA?
Gunakan kunci yang dikonfigurasi di halaman yang Anda izinkan untuk diotomatisasi. Kunci ini mungkin muncul dalam markup widget atau skrip halaman. Jangan menyalin kunci dari tutorial atau domain yang tidak terkait.
Q: Apakah token CapSolver menjamin keberhasilan?
Tidak. Token adalah hasil sementara. Kondisi keberhasilan akhir adalah respons dari aplikasi target setelah token dikirimkan dengan benar dan tepat waktu.
Q: Apakah integrasi ini dapat menangani CAPTCHA gambar?
Tugas ImageToTextTask CapSolver mendukung modul pengenalan gambar yang terdokumentasi. Ekstrak gambar dari halaman yang sah, kirimkan payload Base64 yang diperlukan, dan masukkan teks yang dikembalikan melalui halaman CloakBrowser yang sama.
Q: Apakah kunci API dan lisensi muncul dalam skrip?
Tidak. Contoh menggunakan placeholder yang dapat dikenali. Kode produksi harus membaca rahasia dari variabel lingkungan atau manajer rahasia dan tidak pernah menyimpannya ke kontrol sumber.
Q: Bagaimana cara menguji integrasi ini secara aman?
Mulai dengan demo penyedia atau aplikasi yang Anda kendalikan. Gunakan laju permintaan yang terbatas, catat ID tugas dan hasil akhir, dan pindah ke situs produksi hanya ketika Anda memiliki izin dan kebutuhan operasional yang jelas.
Ulasan CloakBrowser untuk 2026 yang mencakup fitur, harga, lisensi, opsi penyebaran, kelebihan, keterbatasan, alternatif, dan kasus penggunaan ideal.

Kembangkan pemecah reCAPTCHA v3 CrewAI dengan CapSolver, alat berbasis tipe, tindakan halaman yang tepercaya, pengiriman token sisi server, kebijakan skor, dan verifikasi halaman.
