
Emma Foster
Machine Learning Engineer

Cloudflare Turnstile adalah alternatif CAPTCHA yang cerdas yang dirancang untuk memverifikasi pengguna yang sah tanpa tantangan yang mengganggu. Ini beroperasi dengan menjalankan serangkaian tantangan JavaScript yang tidak interaktif di latar belakang, bertujuan untuk membedakan pengunjung manusia dari bot secara mulus. Meskipun memberikan pengalaman pengguna yang lebih baik, sifatnya yang tidak terlihat dan proses verifikasi dinamis dapat menjadi hambatan signifikan bagi alat penggalian web dan ekstraksi data otomatis.
Artikel ini memberikan panduan lengkap tentang integrasi Crawl4AI, crawler web canggih, dengan CapSolver, layanan solusi CAPTCHA dan anti-bot terkemuka, untuk secara efektif melewati perlindungan Cloudflare Turnstile. Kami akan membahas kedua metode integrasi berbasis API dan ekstensi browser, memberikan contoh kode praktis dan penjelasan untuk memastikan tugas otomasi web Anda dapat berjalan dengan lancar dan tanpa gangguan.
Cloudflare Turnstile bekerja dengan mengevaluasi perilaku pengunjung dan karakteristik browser untuk menerbitkan token, yang kemudian dikirim ke server untuk diverifikasi. Tujuannya adalah menjaga privasi dan ramah pengguna, tetapi bagi crawler web, ini berarti:
cf-turnstile-response) sebelum pengiriman formulir atau melanjutkan ke langkah berikutnya.CapSolver menawarkan solusi yang akurat dan respons cepat untuk Cloudflare Turnstile dengan memanfaatkan algoritma AI canggih. Ketika diintegrasikan dengan Crawl4AI, ini mengubah mekanisme anti-bot yang rumit ini menjadi langkah yang dapat dikelola, memastikan tugas otomasi web Anda tetap lancar dan produktif.
💡 Bonus Eksklusif untuk Pengguna Integrasi Crawl4AI:
Untuk merayakan integrasi ini, kami menawarkan kode bonus 6% —CRAWL4untuk semua pengguna CapSolver yang mendaftar melalui tutorial ini.
Cukup masukkan kode tersebut saat recharge di Dashboard untuk menerima kredit tambahan 6% secara instan.
Metode integrasi API memberikan kontrol yang tepat dan sering dipilih karena fleksibilitasnya. Ini melibatkan penggunaan CapSolver untuk memperoleh token Turnstile, lalu menyisipkan token ini ke elemen input yang sesuai di halaman web target menggunakan fungsi js_code dari Crawl4AI.
AntiTurnstileTaskProxyLess beserta websiteURL dan websiteKey. CapSolver akan mengembalikan token Turnstile yang diperlukan.js_code Crawl4AI dalam CrawlerRunConfig untuk menyisipkan token yang diperoleh ke elemen input yang bernama cf-turnstile-response. Setelah penyisipan, simulasi klik tombol kirim atau aktifkan tindakan berikutnya yang bergantung pada token.Kode Python berikut menunjukkan cara mengintegrasikan API CapSolver dengan Crawl4AI untuk menyelesaikan Cloudflare Turnstile. Contoh ini menargetkan halaman demo Cloudflare Turnstile.
import asyncio
import capsolver
from crawl4ai import *
# TODO: set your config
api_key = "CAP-xxxxxxxxxxxxxxxxxxxxx" # your api key of capsolver
site_key = "0x4AAAAAAAGlwMzq_9z6S9Mh" # site key of your target site
site_url = "https://clifford.io/demo/cloudflare-turnstile" # page url of your target site
captcha_type = "AntiTurnstileTaskProxyLess" # type of your target captcha
capsolver.api_key = api_key
async def main():
browser_config = BrowserConfig(
verbose=True,
headless=False,
use_persistent_context=True,
)
async with AsyncWebCrawler(config=browser_config) as crawler:
await crawler.arun(
url=site_url,
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# get turnstile token using capsolver sdk
solution = capsolver.solve({
"type": captcha_type,
"websiteURL": site_url,
"websiteKey": site_key,
})
token = solution["token"]
print("turnstile token:", token)
js_code = """
document.querySelector(\'input[name="cf-turnstile-response"]\').value = \'"""+token+"""\';
document.querySelector(\'button[type="submit"]\').click();
"""
wait_condition = """() => {
const items = document.querySelectorAll(\'h1\');
return items.length === 0;
}"""
run_config = CrawlerRunConfig(
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test",
js_code=js_code,
js_only=True,
wait_for=f"js:{wait_condition}"
)
result_next = await crawler.arun(
url=site_url,
config=run_config,
)
print(result_next.markdown)
if __name__ == "__main__":
asyncio.run(main())
Analisis Kode:
capsolver.solve dipanggil dengan tipe AntiTurnstileTaskProxyLess, websiteURL, dan websiteKey untuk memperoleh token Turnstile. Token ini adalah solusi yang diberikan oleh CapSolver.js_code): String js_code berisi JavaScript yang mencari elemen input dengan name="cf-turnstile-response" di halaman dan menetapkan token yang diperoleh ke properti value-nya. Selanjutnya, meniru klik tombol kirim, memastikan formulir dikirim dengan token Turnstile yang valid.wait_for: Kondisi wait_condition didefinisikan untuk memastikan Crawl4AI menunggu perubahan spesifik di halaman (misalnya, ketidakhadiran elemen h1, yang menunjukkan pengiriman dan navigasi yang berhasil) sebelum melanjutkan.Ekstensi browser CapSolver menawarkan pendekatan yang disederhanakan untuk menangani Cloudflare Turnstile, terutama ketika memanfaatkan kemampuan penyelesaian otomatisnya dalam konteks browser yang tetap yang dikelola oleh Crawl4AI.
user_data_dir untuk menjalankan instance browser yang mempertahankan ekstensi CapSolver yang terinstal dan konfigurasinya.cf-turnstile-response.Contoh ini menunjukkan cara mengonfigurasi Crawl4AI untuk menggunakan profil browser dengan ekstensi CapSolver untuk penyelesaian Cloudflare Turnstile secara otomatis.
import asyncio
import time
from crawl4ai import *
# TODO: set your config
user_data_dir = "/browser-profile/Default1" # Pastikan jalur ini benar dan berisi ekstensi yang dikonfigurasi
browser_config = BrowserConfig(
verbose=True,
headless=False,
user_data_dir=user_data_dir,
use_persistent_context=True,
proxy="http://127.0.0.1:13120", # Opsional: konfigurasikan proxy jika diperlukan
)
async def main():
async with AsyncWebCrawler(config=browser_config) as crawler:
result_initial = await crawler.arun(
url="https://clifford.io/demo/cloudflare-turnstile", # Gunakan URL demo Cloudflare Turnstile
cache_mode=CacheMode.BYPASS,
session_id="session_captcha_test"
)
# Ekstensi akan secara otomatis menyelesaikan CAPTCHA saat halaman dimuat.
# Anda mungkin perlu menambahkan kondisi tunggu atau time.sleep untuk CAPTCHA diselesaikan
# sebelum melanjutkan tindakan lebih lanjut.
time.sleep(30) # Contoh tunggu, sesuaikan sesuai kebutuhan ekstensi untuk beroperasi
# Lanjutkan dengan operasi lain setelah CAPTCHA diselesaikan
# Misalnya, periksa elemen atau konten yang muncul setelah verifikasi berhasil
# print(result_initial.markdown) # Anda dapat memeriksa konten halaman setelah tunggu
if __name__ == "__main__":
asyncio.run(main())
Analisis Kode:
user_data_dir: Parameter ini penting untuk Crawl4AI agar dapat menjalankan instance browser yang mempertahankan ekstensi CapSolver yang terinstal dan konfigurasinya. Pastikan jalur menunjuk ke direktori profil browser yang valid di mana ekstensi terinstal.time.sleep ditambahkan sebagai contoh umum untuk memberi waktu ekstensi menyelesaikan operasi latar belakangnya. Untuk solusi yang lebih kuat, pertimbangkan menggunakan fungsi wait_for dari Crawl4AI untuk memeriksa perubahan spesifik di halaman yang menunjukkan penyelesaian Turnstile yang berhasil.Integrasi Crawl4AI dengan CapSolver memberikan solusi yang kuat dan efisien untuk melewati Cloudflare Turnstile, secara signifikan meningkatkan keandalan operasi penggalian web. Baik Anda memilih kontrol yang tepat dari integrasi API atau otomasi yang disederhanakan yang ditawarkan oleh ekstensi browser, kedua metode ini memastikan Cloudflare Turnstile tidak lagi menghalangi tujuan pengumpulan data Anda.
Dengan otomasi penyelesaian Turnstile, pengembang dapat fokus pada ekstraksi data yang bernilai, percaya bahwa crawler mereka akan berjalan dengan mulus di situs web yang dilindungi. Sinergi antara kemampuan crawling canggih Crawl4AI dan teknologi anti-bot yang kuat dari CapSolver menandai langkah maju signifikan dalam ekstraksi data web otomatis.
Q1: Apa itu Cloudflare Turnstile dan bagaimana perbedaannya dengan CAPTCHA tradisional?
A1: Cloudflare Turnstile adalah alternatif CAPTCHA yang memverifikasi pengguna yang sah tanpa tantangan yang mengganggu. Berbeda dengan CAPTCHA tradisional yang sering membutuhkan pengguna menyelesaikan teka-teki, Turnstile menjalankan tantangan JavaScript yang tidak interaktif di latar belakang, bertujuan untuk pengalaman pengguna yang mulus sambil secara efektif membedakan manusia dari bot.
Q2: Mengapa sulit menggali situs web yang dilindungi oleh Cloudflare Turnstile?
A2: Sifatnya yang tidak terlihat, ketergantungan pada eksekusi JavaScript dinamis, dan kebutuhan token yang valid untuk diinjeksikan ke bidang input tertentu (cf-turnstile-response) membuatnya sulit bagi alat penggalian web otomatis. Ini mengevaluasi karakteristik browser dan perilaku pengguna, seringkali memblokir permintaan yang tidak meniru interaksi manusia yang asli.
Q3: Bagaimana CapSolver membantu melewati Cloudflare Turnstile?
A3: CapSolver menawarkan layanan khusus, seperti AntiTurnstileTaskProxyLess, untuk menyelesaikan tantangan Cloudflare Turnstile. Ini memperoleh token Turnstile yang diperlukan, yang kemudian dapat diinjeksikan oleh Crawl4AI ke halaman web target untuk melewati perlindungan.
Q4: Apa dua metode integrasi utama untuk Cloudflare Turnstile dengan Crawl4AI dan CapSolver?
A4: Dua metode utama adalah integrasi API, di mana API CapSolver dipanggil untuk mendapatkan token yang kemudian diinjeksikan melalui js_code Crawl4AI, dan integrasi ekstensi browser, di mana ekstensi CapSolver menangani tantangan Turnstile secara otomatis dalam konteks browser yang tetap.
Q5: Apa manfaat integrasi Crawl4AI dan CapSolver untuk Cloudflare Turnstile?
A5: Integrasi ini menghasilkan penanganan Turnstile otomatis, efisiensi crawling yang meningkat, ketangguhan crawler yang lebih baik terhadap mekanisme anti-bot, dan pengurangan biaya operasional dengan meminimalkan intervensi manual, memastikan ekstraksi data web yang tidak terganggu.
Pahami perbedaan kunci antara Cloudflare Challenge vs Turnstile dan pelajari cara mengidentifikasi mereka untuk otomatisasi web yang sukses. Dapatkan tips ahli dan solver yang direkomendasikan.

Pelajari cara memperbaiki Cloudflare Error 1005 diakses ditolak selama web scraping. Temukan solusi seperti proksi rumah tangga, pemindaian sidik jari peramban, dan CapSolver untuk CAPTCHA. Optimalkan ekstraksi data.
