
Emma Foster
Machine Learning Engineer

NO_CHALLENGE, RECOVERED, REVIEW, dan STOP dengan aturan deterministik, bukan keputusan model yang tidak terbatas.Penyelesaian CAPTCHA Gumloop bekerja paling baik sebagai cabang pemulihan yang dikendalikan di sekitar tugas browser yang sah, bukan sebagai integrasi native yang diasumsikan. Gumloop dapat mengatur input, panggilan HTTP, rute, dan jalur kesalahan, sementara pekerja browser eksternal mempertahankan sesi halaman dan menerapkan hasil yang telah diverifikasi. CapSolver dapat menyediakan lapisan CAPTCHA yang telah didokumentasikan di dalam pekerja tersebut. Pemisahan ini penting karena hasil API saja tidak membuktikan bahwa halaman asli telah bergerak. Alur kerja harus memeriksa state browser, menerapkan anggaran ulang, dan berhenti ketika otorisasi atau kelanjutan sesi tidak pasti. Pola di bawah ini adalah otomatisasi yang sah, wajar, bertanggung jawab, dan diizinkan pengguna pada sistem dan data yang Anda akses.
Tidak ada konektor native Gumloop–CapSolver yang diverifikasi selama penelitian untuk panduan ini. Oleh karena itu, penyelesaian CAPTCHA Gumloop memerlukan prasyarat eksplisit: tim Anda harus mengoperasikan layanan HTTPS yang memiliki sesi browser yang sah dan mengekspos titik akhir pemulihan yang sempit. Ini bukan API pribadi Gumloop, node tersembunyi, atau klaim bahwa Gumloop secara resmi mengintegrasikan CapSolver.
Batas ini mengikuti kemampuan yang didokumentasikan untuk Gumloop. Node Call API dapat mengirim permintaan GET atau POST ke titik akhir HTTPS dengan header dan isi permintaan. Node Input node contract dapat menerima nilai dari pengguna, webhook, atau default. Kemampuan ini cukup untuk memanggil layanan yang dikendalikan organisasi Anda, tetapi tidak menciptakan atau mempertahankan sesi browser sendiri.
Persiapkan komponen ini terlebih dahulu:
Jika satu komponen pun hilang, pertahankan penyelesaian CAPTCHA Gumloop dalam status desain atau pengujian. Jangan mengganti node Gumloop yang tidak diverifikasi atau menempatkan kunci API produksi di teks alur kerja biasa.
Desain penyelesaian CAPTCHA Gumloop yang andal memisahkan orkestrasi dari eksekusi browser. Kanvas Gumloop harus memodelkan jalur keputusan; pekerja browser harus memiliki deteksi tantangan, pemanggilan CapSolver, aplikasi hasil, dan verifikasi halaman.
Alur kerja dimulai dengan webhook atau input manual yang berisi referensi eksekusi yang tidak terlihat. Jangan kirim cookie, kata sandi, HTML mentah, atau cadangan penyimpanan browser. Peristiwa minimal dapat terlihat seperti ini:
{
"run_id": "run_01JX...",
"session_ref": "browser_session_7f2a",
"approved_host": "portal.example",
"approved_action": "submit_owned_test_form",
"observed_state": "CHALLENGE_DETECTED",
"challenge_type": "recaptcha_v2",
"attempt": 0
}
Input ini adalah referensi ke eksekusi yang telah disetujui. Output tahap ini adalah permintaan pemulihan yang valid atau STOP. Alur kerja berhenti segera jika host, tindakan, atau referensi sesi tidak ada atau di luar kebijakan.
Konfigurasikan node Call API untuk mengirim permintaan POST ke titik akhir yang dimiliki organisasi seperti https://automation.example.net/v1/browser/recover. Gunakan kredensial yang dikelola untuk header otorisasi layanan. Isi harus melewati bidang peristiwa yang dibatasi, bukan kunci API CapSolver.
{
"run_id": "{{run_id}}",
"session_ref": "{{session_ref}}",
"approved_host": "{{approved_host}}",
"approved_action": "{{approved_action}}",
"challenge_type": "{{challenge_type}}",
"attempt": "{{attempt}}",
"max_attempts": 1
}
JSON ini adalah kontrak HTTP umum untuk layanan Anda. Ini bukan ekspor Gumloop dan bukan permintaan API CapSolver. Sebelum implementasi, konfirmasikan variabel interpolasi dan kontrol kredensial yang tersedia di workspace Gumloop Anda.
Layanan harus mengembalikan respons kecil yang dapat Gumloop arahkan tanpa melihat nilai solusi mentah:
{
"state": "RECOVERED",
"run_id": "run_01JX...",
"correlation_id": "recovery_91c8",
"attempts_used": 1,
"continuation_verified": true,
"reason": "langkah formulir yang diharapkan menjadi terlihat"
}
Respons terminal yang berguna adalah NO_CHALLENGE, RECOVERED, REVIEW, dan STOP. Kesalahan layanan sementara dapat mengembalikan RETRYABLE_ERROR, tetapi Gumloop harus mengonsumsi anggaran ulang satu kali sebelum memanggil lagi. Jangan memperlakukan state yang hilang, isi yang tidak dapat diparsing, atau HTTP 200 dengan nilai yang tidak diketahui sebagai keberhasilan.
Gunakan mode standar Router Gumloop untuk pencocokan state pasti. Pemulihan tantangan adalah masalah kontrol deterministik, jadi tidak memerlukan interpretasi model.
| State | Cabang Gumloop | Tindakan yang Diperlukan |
|---|---|---|
NO_CHALLENGE |
Lanjutkan | Lanjutkan hanya jika state halaman yang diharapkan sudah ada |
RECOVERED |
Lanjutkan | Membutuhkan continuation_verified=true |
RETRYABLE_ERROR |
Ulangi sekali | Tingkatkan penghitung percobaan, lalu berhenti jika berulang |
REVIEW |
Antrean manusia | Pertahankan bukti yang telah dihapus dan akhiri eksekusi otonom |
STOP |
Terminal | Tutup run tanpa tindakan browser lain |
| Tidak dikenal atau kosong | Terminal | Tangani output yang rusak sebagai STOP |
Tabel ini mendefinisikan output penyelesaian CAPTCHA Gumloop, bukan status tugas internal penyedia. State penyedia harus diselesaikan di dalam layanan pemulihan sebelum respons terminal mencapai alur kerja.
Bungkus node Call API dengan cabang kegagalan Error Shield Gumloop. Aktifkan pass-through hanya untuk bidang input yang tidak rahasia yang diperlukan untuk menyelidiki panggilan yang gagal. Jalur kesalahan harus membuat catatan review atau mengirim pemberitahuan; jangan menghubungkan kembali secara otomatis ke tindakan browser.
Kegagalan transportasi, kesalahan penyedia, penolakan aplikasi, dan tantangan yang tidak didukung memerlukan bukti yang berbeda. Menggabungkan keempatnya ke dalam satu cabang ulang membuat penyelesaian CAPTCHA Gumloop sulit dioperasikan dan dapat menciptakan lalu lintas berulang setelah kegagalan terminal.
Layanan pemulihan adalah tempat bidang CapSolver resmi berada. Permintaan createTask menerima clientKey dan objek tugas. Respons getTaskResult menggunakan errorId, status, dan solution untuk tugas asinkron. Respons resmi menyatakan bahwa hasil processing dapat ditanyakan kembali setelah tiga detik.
Contoh Python berikut hanya mengimplementasikan adapter reCAPTCHA v2. Ia menggunakan bidang ReCaptchaV2TaskProxyLess, websiteURL, dan websiteKey yang telah didokumentasikan dari definisi tugas reCAPTCHA v2. Fungsi deteksi dan aplikasi spesifik browser adalah placeholder yang dimiliki oleh pekerja Anda; mereka bukan metode API Gumloop atau CapSolver.
import os
import time
import requests
CAPSOLVER_KEY = os.environ["CAPSOLVER_API_KEY"]
CREATE_TASK = "https://api.capsolver.com/createTask"
GET_RESULT = "https://api.capsolver.com/getTaskResult"
APPROVED_HOSTS = {"portal.example"}
def solve_recaptcha_v2(website_url: str, website_key: str) -> dict:
created = requests.post(
CREATE_TASK,
json={
"clientKey": CAPSOLVER_KEY,
"task": {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key,
},
},
timeout=15,
).json()
if created.get("errorId") or not created.get("taskId"):
return {"state": "REVIEW", "reason": "pembuatan tugas gagal"}
for _ in range(4):
time.sleep(3)
result = requests.post(
GET_RESULT,
json={"clientKey": CAPSOLVER_KEY, "taskId": created["taskId"]},
timeout=15,
).json()
if result.get("errorId"):
return {"state": "REVIEW", "reason": "penyedia mengembalikan kesalahan"}
if result.get("status") == "ready":
return {"state": "SOLUTION_READY", "solution": result["solution"]}
if result.get("status") != "processing":
return {"state": "REVIEW", "reason": "status tugas tidak diharapkan"}
return {"state": "STOP", "reason": "anggaran polling habis"}
def recover_authorized_session(event: dict, browser_store) -> dict:
if event.get("approved_host") not in APPROVED_HOSTS:
return {"state": "STOP", "reason": "host di luar jangkauan yang disetujui"}
if event.get("attempt", 0) >= event.get("max_attempts", 1):
return {"state": "STOP", "reason": "anggaran percobaan habis"}
page = browser_store.get(event["session_ref"])
if page is None:
return {"state": "REVIEW", "reason": "sesi browser tidak tersedia"}
info = detect_supported_challenge(page) # adapter browser yang diverifikasi Anda
if info is None:
return {"state": "NO_CHALLENGE"}
if info["type"] != "recaptcha_v2":
return {"state": "REVIEW", "reason": "adapter tidak dikonfigurasi"}
solved = solve_recaptcha_v2(info["website_url"], info["website_key"])
if solved["state"] != "SOLUTION_READY":
return solved
apply_solution_in_same_session(page, solved["solution"])
if not verify_expected_transition(page, event["approved_action"]):
return {"state": "REVIEW", "reason": "penerapan tidak melanjutkan"}
return {"state": "RECOVERED", "continuation_verified": True}
Input fungsi adalah peristiwa run yang disetujui ditambah referensi sesi browser yang tidak terlihat. Outputnya adalah state terminal untuk Gumloop. Ia berhenti pada host yang tidak disetujui, anggaran percobaan habis, sesi browser hilang, adapter tidak didukung, kesalahan penyedia, status tugas tidak diharapkan, anggaran polling habis, atau verifikasi aplikasi gagal.
Jangan gunakan kembali objek tugas v2 untuk jenis tantangan lain. Buat adapter terpisah dari panduan resmi tugas reCAPTCHA v3 dan tugas Cloudflare Turnstile. Pertahankan setiap adapter dengan bidang yang diperlukan, solusi yang dikembalikan, logika aplikasi browser, dan asersi validasi terpisah.
Klaim Kode Bonus CapSolver Anda
Tingkatkan anggaran otomatisasi Anda secara instan!
Gunakan kode bonus CAP26 saat menambahkan akun CapSolver Anda untuk mendapatkan tambahan 5% bonus pada setiap penambahan — tanpa batas.
Klaim sekarang di Dasbor CapSolver Anda
Kelanjutan sesi adalah batas yang menentukan dalam penyelesaian CAPTCHA Gumloop. Solusi bisa secara teknis valid tetapi tetap gagal ketika kembali ke halaman yang berbeda, kumpulan cookie, user agent, identitas proxy, rute, atau tindakan yang dilindungi.
Alur kerja Gumloop harus melewati session_ref yang tidak terlihat; jangan membangun kembali state browser dari bidang yang disalin. Pekerja pemulihan menyelesaikan referensi tersebut, memverifikasi URL saat ini dan tantangan, menerapkan hasil dalam konteks browser yang sama, dan memeriksa asersi aplikasi tertentu. Contoh termasuk langkah formulir yang menjadi terlihat, rute QA yang dimiliki selesai, atau elemen halaman publik yang diharapkan muncul.
Verifikasi aplikasi harus lebih kuat daripada "panggilan HTTP berhasil". Diagnosis n8n recovery yang terkait menunjukkan mengapa platform alur kerja memerlukan pemeriksaan pasca-pemulihan terpisah. Di Gumloop, model pemeriksaan ini sebagai bagian dari respons pekerja dan minta continuation_verified=true sebelum cabang keberhasilan dapat berjalan.
Alur kerja penyelesaian CAPTCHA Gumloop yang baik memiliki dua anggaran: anggaran polling penyedia di dalam layanan pemulihan dan anggaran ulang alur kerja di Gumloop. Mereka menyelesaikan masalah yang berbeda.
Anggaran polling penyedia mengontrol seberapa lama layanan menunggu tugas yang masih diproses. Anggaran ulang alur kerja mengontrol apakah Gumloop dapat memanggil layanan pemulihan lagi setelah kesalahan transportasi sementara. Kebijakan awal yang masuk akal adalah satu percobaan pemulihan alur kerja dan polling penyedia yang kecil dan berbasis waktu. Sesuaikan nilai-nilai ini hanya dari beban kerja yang sah yang diamati.
Berhenti tanpa ulang ketika:
Alur kerja harus mencatat alasan berhenti, ID korelasi, jumlah percobaan, dan identifikasi target yang telah dihapus. Jangan menyimpan kunci API, cookie, nilai solusi mentah, atau konten halaman yang tidak perlu dalam log rutin.
Fallback manusia bergantung pada permukaan Gumloop mana yang Anda operasikan. Untuk alur kerja standar, arahkan REVIEW ke notifikasi, tiket, lembar, atau antrian manual lainnya, lalu akhiri tindakan browser otonom. Jangan klaim bahwa setiap alur kerja dapat berhenti tanpa batas kecuali rencana dan konfigurasi Gumloop Anda membuktarkannya.
Gumloop secara terpisah mendokumentasikan persetujuan manusia untuk pemanggilan alat agen. Jika tindakan pemulihan tersedia untuk agen Gumloop sebagai alat yang disetujui, Anda dapat memerlukan persetujuan sebelum pemanggilan alat dan membiarkan agen melanjutkan setelah keputusan. Itu adalah opsi kontrol agen, bukan bukti koneksi CapSolver dan bukan pengganti untuk pemeriksaan otorisasi layanan pemulihan.
Operator yang meninjau bukti penyelesaian CAPTCHA Gumloop harus melihat:
Persetujuan harus memungkinkan satu tindakan yang dinamai, bukan memperluas jalur ke host atau cakupan data baru.
Validasi penyelesaian CAPTCHA Gumloop dengan fixture pada sistem yang Anda miliki atau diizinkan untuk diuji. Suite penerimaan harus mencakup canvas Gumloop dan pekerja browser.
NO_CHALLENGE yang valid dan pastikan alur kerja terus berjalan tanpa memanggil endpoint pemulihan.RECOVERED hanya setelah pernyataan aplikasi lulus.processing hingga anggaran polling penyedia habis dan pastikan layanan mengembalikan STOP.REVIEW.Bukti uji akhir harus menjawab empat pertanyaan: Apakah jalur kerja diizinkan? Apakah adapter tantangan didokumentasikan? Apakah sesi browser yang sama terus berlanjut? Apakah status aplikasi yang diinginkan maju? Jawaban "ya" dari panggilan API saja tidak cukup.
Penyelesaian CAPTCHA Gumloop andal ketika Gumloop tetap menjadi orkestrator dan layanan browser yang diizinkan memiliki pemulihan sesi sensitif. Gunakan perilaku Input, Call API, Router, dan Error Shield yang didokumentasikan; ekspos kontrak HTTP kecil; pertahankan ulang coba terbatas; verifikasi transisi halaman asli; dan arahkan ketidakpastian ke tinjauan. Jangan klaim koneksi native atau salin status browser ke alur kerja. Untuk otomasi web yang disetujui yang membutuhkan penanganan reCAPTCHA v2/v3 atau Cloudflare Turnstile yang didokumentasikan di balik kontrol ini, evaluasi CapSolver sebagai komponen pemulihan di dalam batas layanan Anda.
Tidak ada koneksi Gumloop-CapSolver asli yang diverifikasi untuk panduan ini. Implementasi menggunakan kemampuan HTTP dan routing yang didokumentasikan Gumloop untuk memanggil layanan pemulihan yang dimiliki organisasi yang terintegrasi dengan CapSolver.
Node Call API dapat mengirimkan permintaan POST, tetapi pemanggilan langsung dapat mengungkap kredensial penyedia dan tetap tidak mempertahankan atau melanjutkan sesi browser. Layanan pemulihan sisi server yang sempit adalah batas operasional yang lebih aman karena menyimpan kunci, memiliki sesi, menerapkan hasil, dan hanya mengembalikan status yang diverifikasi.
Untuk pola ini, konfigurasikan adapter yang terdokumentasi terpisah untuk reCAPTCHA v2, reCAPTCHA v3 termasuk Enterprise di mana relevan, dan Cloudflare Turnstile. Jangan gunakan kembali bidang di antara jenis tugas atau anggap jenis yang tidak didukung sebagai kesalahan yang dapat diulang.
Mulai dengan satu upaya pemulihan alur kerja. Pertahankan polling penyedia di dalam layanan pemulihan dengan anggaran waktu dan query sendiri. Berhenti ketika tantangan diulang, kelanjutan sesi hilang, penyedia mengembalikan kesalahan, atau verifikasi aplikasi gagal.
Gunakan tinjauan manusia ketika otorisasi tidak jelas, sesi browser hilang, jenis tantangan tidak didukung, respons rusak, anggaran percobaan habis, atau transisi halaman yang diharapkan tidak terjadi. Tinjauan tidak boleh memperluas host, tindakan, atau cakupan data yang disetujui.
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

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
