Comparisons

Deteksi Bot vs CAPTCHA dalam Scraping

Scraper Anda tiba-tiba mendapat halaman kosong atau kode 403 — padahal belum pernah melihat satu pun tantangan CAPTCHA. Itu tandanya deteksi bot, bukan CAPTCHA, yang menghentikan Anda. Dua lapisan ini sering disamakan padahal cara kerjanya jauh berbeda: deteksi bot menganalisis tiap permintaan diam-diam, sedangkan CAPTCHA baru muncul di titik tertentu seperti login, pendaftaran, atau checkout. Situs modern nyaris selalu memakai keduanya sekaligus — menangani salah satunya saja tidak cukup.


Kenapa deteksi bot bisa memblokir Anda sebelum CAPTCHA muncul

Sistem deteksi bot menilai tiap permintaan sebelum mencapai aplikasi, memakai sinyal berikut:

  • sinyal browser TLS — hash JA3/JA4 mengidentifikasi library HTTP client
  • Header HTTP — urutan, keberadaan, dan nilai header
  • Reputasi IP — IP pusat data vs IP residensial, riwayat penyalahgunaan
  • Pola permintaan — kecepatan, urutan, jeda antar-request
  • Tantangan JavaScript — apakah klien bisa eksekusi JS
  • sinyal browser — canvas, WebGL, font, plugin
  • Analisis perilaku — mouse, keyboard, event sentuh

Vendor deteksi bot yang sering ditemui

  • Cloudflare Bot Management — tantangan TLS + JS + machine learning → halaman Turnstile atau Challenge
  • Akamai Bot Manager — TLS + sinyal browser + perilaku → tantangan khusus
  • DataDome — tantangan JS + sinyal browser → CAPTCHA khusus atau reCAPTCHA
  • PerimeterX (HUMAN) — perilaku + sinyal browser → tantangan khusus
  • Imperva — beberapa lapisan sekaligus → reCAPTCHA

Bagaimana CAPTCHA bekerja setelah Anda lolos deteksi bot

CAPTCHA baru diterapkan di titik yang memang butuh verifikasi eksplisit. Begitu Anda mencapai aksi terlindungi — login, checkout, atau formulir — widget CAPTCHA dirender, terlihat maupun tidak. Setelah Anda (atau CaptchaAI sebagai solver) menyelesaikan tantangannya, token dihasilkan dan diverifikasi backend, lalu akses diberikan atau ditolak.


Deteksi bot vs CAPTCHA: tabel perbandingan

Setelah memahami cara kerja keduanya, berikut ringkasan bedanya berdampingan:

Aspek Deteksi Bot CAPTCHA
Terlihat pengguna Tidak, berjalan diam-diam Ya, atau sebagian — reCAPTCHA v3 dan Turnstile nyaris tidak terlihat
Kapan berjalan Terus-menerus di setiap permintaan Hanya di titik tertentu: login, pendaftaran, checkout
Respons ke bot Blokir, rate-limit, atau kirim data palsu Menyajikan tantangan
Yang dianalisis Header, TLS, IP, perilaku, sinyal browser Respons tantangan + sinyal perilaku
Contoh vendor Cloudflare Bot Management, Akamai, DataDome, PerimeterX reCAPTCHA, Turnstile, GeeTest
Bisa diselesaikan CaptchaAI Tidak secara langsung Ya

Pendekatan berlapis: kenapa situs modern pakai keduanya

Request → Bot Detection Layer → CAPTCHA Layer → Application
           ↓                       ↓
    Block obvious bots      Challenge suspicious users

Tim data engineer Jakarta yang memantau harga marketplace regional dari region AWS ap-southeast-1 biasanya mengalami pola ini:

  1. Deteksi bot memeriksa sinyal browser TLS → lolos (menyerupai Chrome asli)
  2. Deteksi bot memeriksa reputasi IP → lolos (IP residensial, bukan data center)
  3. Deteksi bot memeriksa sinyal perilaku → dicurigai (request terlalu cepat dan berpola sama)
  4. CAPTCHA dipicu sebagai pemeriksaan kedua
  5. CaptchaAI menyelesaikan tantangan tersebut
  6. Akses diberikan, scraping berlanjut normal

Kalau data yang diambil menyentuh informasi pribadi, UU PDP (UU 27/2022) tetap berlaku — scrape hanya data yang memang boleh diakses.


Strategi menangani bot detection dan CAPTCHA sekaligus

Langkah 1: lolos dari deteksi bot dulu

Gunakan sinyal browser yang wajar — Puppeteer dengan konfigurasi standar sudah cukup. Pakai egress jaringan yang diotorisasi, set header yang tepat (User-Agent, Accept), lalu terapkan pola permintaan yang realistis supaya tidak langsung dicurigai.

Langkah 2: selesaikan CAPTCHA saat muncul

import requests

# Check if response contains a CAPTCHA
if "g-recaptcha" in page_source:
    # Solve with CaptchaAI
    token = solve_recaptcha(sitekey, page_url)
elif "cf-turnstile" in page_source:
    token = solve_turnstile(sitekey, page_url)
elif "challenge" in page_source and "cloudflare" in page_source:
    cookie = solve_cloudflare_challenge(page_url, proxy)

Langkah 3: antisipasi eskalasi deteksi

Tahap Yang terjadi
Permintaan pertama Respons normal
Beruntun banyak permintaan Rate limiting
Setelah rate limiting CAPTCHA dipicu
CAPTCHA gagal berulang IP diblokir
Rotasi IP tanpa ubah pola Sinyal browser ikut diblokir

Pertanyaan yang sering diajukan

Apakah CaptchaAI bisa mengatasi deteksi bot seperti Cloudflare Bot Management?

Belum. CaptchaAI menyelesaikan tantangan CAPTCHA, bukan deteksi bot. Anda tetap perlu sinyal browser yang wajar, egress jaringan yang diotorisasi, dan pola permintaan yang realistis untuk lolos dari lapisan deteksi bot.

Kenapa scraping saya diblokir padahal belum pernah melihat CAPTCHA?

Karena deteksi bot bekerja diam-diam, sebelum CAPTCHA sempat muncul. Penyebab paling umum: sinyal browser yang tidak menyerupai browser asli, reputasi IP buruk, atau pola request yang terlalu cepat dan seragam.

Apa bedanya reCAPTCHA v3 dan Cloudflare Turnstile dari sisi deteksi bot?

Keduanya berjalan tanpa interaksi pengguna dan menilai risiko diam-diam. reCAPTCHA v3 mengembalikan skor risiko ke situs, sedangkan Turnstile langsung memutuskan lolos-tidaknya di Cloudflare. CaptchaAI mendukung keduanya.

Apa yang harus dilakukan kalau IP saya diblokir setelah beberapa kali gagal CAPTCHA?

Hindari mengirim ulang permintaan dari IP dan sinyal browser yang sama. Ganti egress jaringan yang diotorisasi, kurangi kecepatan request, dan selesaikan CAPTCHA berikutnya dengan benar.


Panduan terkait

Pelajari cara kerja Cloudflare Challenge dan rotasi proxy untuk scraping CAPTCHA untuk melengkapi strategi di atas.


Siap menangani lapisan CAPTCHA-nya? Dapatkan API key CaptchaAI Anda dan mulai integrasi hari ini.

Komentar dinonaktifkan untuk artikel ini.