Kami adalah Geonode dan kami menjual layanan proxy, yang biasanya direkomendasikan bersama pustaka seperti ini. Sejujurnya, kami tidak akan menulis panduan untuk melewati pembatasan tersebut, dan dalam kasus khusus ini, alat tersebut memang sudah usang. Kami memeriksa paket tersebut pada September 2026: versi 1.2.71 di PyPI, diunggah pada April 2023, dengan repositori sumber terakhir diperbarui pada Juni 2025 dan commit-commit tersebut bersifat administratif, bukan fungsional. Sementara itu, sistem deteksi bot Cloudflare kini telah beralih ke pembelajaran mesin berdasarkan miliaran permintaan, deteksi headless berbasis JavaScript, dan analisis urutan header. Pustaka berbasis requests yang mengatasi tantangan JavaScript tidak menangani hal-hal tersebut sama sekali. Bagian yang berguna dari artikel ini adalah tiga bagian terakhir.
Tujuan Pembuatan Cloudscraper
Deskripsi perpustakaan itu sendiri sudah jelas mengenai tujuannya, dan membacanya sekarang sangat bermanfaat.
Cloudscraper mendeskripsikan dirinya sebagai "modul Python sederhana untuk melewati halaman anti-bot Cloudflare (juga dikenal sebagai 'I'm Under Attack Mode', atau IUAM), yang diimplementasikan dengan Requests". Disebutkan bahwa "halaman anti-bot Cloudflare saat ini hanya memeriksa apakah klien mendukung JavaScript, meskipun mereka mungkin menambahkan teknik tambahan di masa depan".
Mekanisme yang diselesaikannya adalah interstitial klasik:
Checking your browser before accessing website.com.
This process is automatic. Your browser will redirect to your requested content shortly.
Please allow up to 5 seconds...
Pendekatan perpustakaan ini adalah menggunakan "mesin/interpreter JavaScript untuk mengatasi tantangan JavaScript", yang "memungkinkan skrip untuk dengan mudah menyamar sebagai browser web biasa tanpa perlu secara eksplisit mendekripsi dan mengurai kode JavaScript Cloudflare". Dokumentasinya menyebutkan bahwa skrip akan "berhenti sejenak selama ~5 detik pada kunjungan pertama ke situs mana pun yang mengaktifkan anti-bot Cloudflare", tanpa penundaan setelahnya.
Untuk masalah yang ada saat itu, ini merupakan desain yang masuk akal. Tantangannya adalah teka-teki JavaScript; pustaka tersebut menjalankan mesin JavaScript dan menyelesaikannya.
Berkas README juga berisi komitmen yang menunjukkan tanggal proyek secara tepat: “Cloudflare mengubah tekniknya secara berkala, jadi saya akan memperbarui repositori ini secara rutin.”
Status Pemeliharaan, Telah Diperiksa
Fakta, bukan sekadar kesan, yang diverifikasi pada September 2026.
Rilis PyPI terbaru adalah 1.2.71, diunggah pada 25 April 2023. Hal ini menunjukkan jeda lebih dari tiga tahun dibandingkan dengan target yang menurut penulisnya berubah secara berkala.
Repositori GitHub terakhir kali di-push pada Juni 2025, dan commit terbaru berjudul "Perbaiki pemilik", "tambahkan kembali gitignore", dan "Perbaiki detail pemilik" — lebih merupakan pembenahan daripada pembaruan deteksi.
Paket ini belum diarsipkan, dan terdapat sekitar 36 masalah yang masih terbuka.
Semua ini bukanlah kritik terhadap penulis, yang telah membuat alat berguna dan menyediakannya secara gratis di bawah lisensi MIT. Ini hanyalah kondisi paket tersebut, dan merupakan fakta paling relevan bagi siapa pun yang akan mengandalkannya. Sebuah pustaka yang seluruh nilai jualnya terletak pada kemampuannya untuk mengimbangi perkembangan musuh adalah pustaka di mana tanggal rilisnya adalah spesifikasinya.
Jika Anda menemukan cloudscraper direkomendasikan dalam sebuah artikel, periksa tanggal artikel tersebut. Sebagian besar saran yang beredar memang akurat pada saat ditulis, namun belum pernah ditinjau kembali.
Seperti Apa Deteksi Cloudflare Saat Ini
Alasan mengapa pendekatan tersebut tidak lagi berfungsi, berdasarkan dokumentasi resmi Cloudflare.
Skor bot Cloudflare berkisar dari 1 hingga 99, di mana 1 berarti "Cloudflare cukup yakin bahwa permintaan tersebut dilakukan secara otomatis" dan 99 menunjukkan kemungkinan besar dilakukan oleh manusia. Skor ini dihasilkan oleh beberapa mesin yang bekerja sama.
Pembelajaran mesin bertanggung jawab atas sebagian besar deteksi. Cloudflare menjelaskan "metodologi pembelajaran mesin yang diawasi" yang menganalisis miliaran permintaan harian, memeriksa "fitur permintaan seperti header dan sinyal browser" untuk memprediksi kemungkinan bahwa klien tersebut adalah manusia.
Heuristik mencocokkan tanda tangan yang sudah dikenal, memberikan skor 1 untuk deteksi dengan tingkat keyakinan tinggi.
Deteksi JavaScript mengidentifikasi browser headless melalui "injeksi JavaScript sisi klien yang ringan dan tak terlihat" yang menurut Cloudflare "tidak mengumpulkan informasi identitas pribadi apa pun".
ID deteksi adalah aturan statis yang mengidentifikasi perilaku yang dapat diprediksi. Contoh dari Cloudflare cukup jelas: mereka dapat mengidentifikasi ketika "seorang klien mengirimkan header dalam urutan yang berbeda dari yang seharusnya digunakan oleh browser yang diklaimnya".
Hal terakhir itulah intinya. Urutan header bukanlah sesuatu yang dikendalikan oleh pustaka berbasis requests, dan urutan tersebut tidak berubah saat Anda menyelesaikan tantangan JavaScript. Begitu pula dengan tanda tangan TLS handshake, yang merupakan sifat dari stack HTTP Python Anda, bukan dari apa pun yang Anda kirimkan.
Jadi, modelnya telah terbalik. Pada tahun 2019, pertanyaannya adalah “apakah klien ini dapat menjalankan JavaScript”, dan pustaka dengan mesin JavaScript menjawab ya. Kini pertanyaannya adalah “apakah segala hal tentang klien ini sesuai dengan klaimnya”, dan proses Python yang mengklaim sebagai Chrome gagal pada beberapa sinyal independen sekaligus — tidak ada satupun di antaranya yang disentuh oleh pemecah tantangan.
Cloudflare juga telah menambahkan respons yang sengaja dirancang untuk menantang. AI Labyrinth-nya menyajikan konten yang dihasilkan secara koheren kepada crawler tanpa batas waktu alih-alih memblokirnya, yang berarti scraper dapat tampak berhasil meskipun tidak mengumpulkan apa pun yang bernilai. Kami telah membahas pola tersebut dalam perangkap honeypot.
Mengapa Proksi Tidak Dapat Memecahkan Masalah Ini
Bagian di mana kami mengkritik produk kami sendiri, karena memang itulah kenyataannya.
Perhatikan daftar deteksi di atas dan perhatikan apa saja yang tercantum di dalamnya: komposisi dan urutan header, sinyal browser, fitur permintaan yang dipelajari oleh mesin, serta karakteristik eksekusi JavaScript. Alamat IP sama sekali tidak disebutkan dalam deskripsi Cloudflare sendiri mengenai cara skor bot dihitung.
Reputasi alamat tentu saja merupakan salah satu masukan dalam keputusan keseluruhan Cloudflare, dan alamat yang buruk tidak akan membantu Anda. Namun, itu hanyalah salah satu dari banyak masukan, dan bukan faktor yang mengidentifikasi klien Python sebagai otomatis. Proksi residensial yang digunakan di depan sesi requests akan memberi Anda alamat bersih yang terhubung ke klien yang tetap terlihat persis seperti apa adanya.
Ringkasan yang jujur: jika Anda ditandai karena alamat Anda berada dalam rentang pusat data bersama yang memiliki riwayat buruk, alamat yang lebih baik akan membantu. Jika Anda ditandai karena permintaan Anda tidak terlihat seperti browser yang diklaimnya, tidak ada perubahan alamat yang dapat mengubah hal itu — dan kami lebih memilih untuk mengatakan hal ini daripada menjual bandwidth kepada Anda untuk tujuan tersebut.
Apa yang Harus Dilakukan Sebagai Gantinya
Bagian yang benar-benar bermanfaat, disusun berdasarkan urutan yang paling efektif dalam mengatasi masalah.
Periksa apakah ada API resmi. Sebagian besar situs yang menggunakan Cloudflare juga menerbitkan API, tepatnya agar pengguna yang sah memiliki jalur yang diizinkan. Hal ini jarang diperiksa sebagaimana mestinya, karena secara naluriah orang cenderung mencari cara untuk melewati pembatasan daripada mencari dokumentasi.
Periksa apakah ada umpan data atau program mitra. Seluruh industri mempublikasikan data massal untuk konsumen hilir. Tanyakan saja.
Periksa apa yang tersedia tanpa jalur yang dilindungi. Peta situs, umpan RSS, JSON-LD yang disematkan dalam halaman, kumpulan data publik, arsip. Seringkali hal spesifik yang Anda inginkan ternyata dipublikasikan di tempat yang tidak dilindungi.
Tanyakan kepada pengelola situs. Sebuah email yang menjelaskan siapa Anda, apa yang Anda butuhkan, dan dalam volume berapa, seringkali menyelesaikan masalah ini lebih efektif daripada yang dibayangkan dalam diskusi. Penolakan pengelola situs biasanya disebabkan oleh beban yang tidak dijelaskan, bukan karena Anda secara khusus. Ini juga satu-satunya cara yang menghasilkan akses yang tetap berfungsi.
Gunakan penyedia data berlisensi. Untuk data umum — informasi perusahaan, katalog produk, data pasar — pasti ada yang menjualnya, dan harganya seringkali lebih murah daripada waktu pengembangan yang dihabiskan untuk menghindari pembelian tersebut.
Pertimbangkan apakah Anda membutuhkan data yang lebih sedikit. Banyak pengumpulan data mengumpulkan jauh lebih banyak daripada yang dibutuhkan. Permintaan yang lebih kecil dan lebih spesifik lebih mudah dipenuhi melalui cara yang sah dan lebih mudah dibenarkan saat Anda mengajukan permohonan.
Dan jika Anda menjalankan klien otomatis yang sah, pendekatan yang sedang berkembang adalah identifikasi, bukan penyamaran. Industri ini bergerak menuju otentikasi agen kriptografis, kebijakan akses per agen, dan dalam beberapa kasus, akses berbayar untuk lalu lintas otomatis — sebuah arah yang telah kami jelaskan dalam artikel kami tentang DataDome. Menjadi agen yang dapat diidentifikasi dan dipilih untuk diizinkan oleh sebuah situs adalah satu-satunya pendekatan yang semakin dapat diandalkan seiring berjalannya waktu, bukan sebaliknya.
Jika Anda Memiliki Kode yang Sudah Ada yang Menggunakannya
Panduan praktis untuk situasi yang sebenarnya dihadapi banyak orang: sebuah pipeline yang berfungsi dan dibangun di atas CloudScraper yang mulai mengalami kegagalan.
Pertama, tentukan apa yang sebenarnya terjadi. Ungkapan "sudah tidak berfungsi" mencakup beberapa jenis kegagalan yang berbeda dengan respons yang berbeda pula. Cetak kode status dan bagian awal isi pesan, bukan hanya menangani pengecualian:
import cloudscraper
scraper = cloudscraper.create_scraper()
r = scraper.get(url)
print(r.status_code, r.headers.get("content-type"))
print(r.text[:300])
Sebuah 403 dengan halaman blokir Cloudflare berarti Anda telah teridentifikasi. Sebuah 200 dengan halaman tantangan berarti tantangan tersebut belum terpecahkan. Sebuah 200 dengan konten yang masuk akal namun tidak relevan berarti Anda mungkin terjebak dalam tarpit. Sebuah 503 dengan halaman interstitial Cloudflare berarti tantangan gaya lama masih berlaku dan ada hal lain dalam konfigurasi Anda yang salah. Masing-masing menunjuk ke masalah yang berbeda.
Kemudian periksa apakah situsnya yang berubah atau perpustakaannya. Akses URL yang sama dengan requests biasa dan dengan browser sungguhan. Jika browser berfungsi dan kedua jalur Python gagal dengan cara yang sama, situs tersebut telah memperketat proteksinya dan tidak ada konfigurasi pustaka yang akan membantu. Jika requests biasa berfungsi, cloudscraper justru menambah masalah alih-alih menyelesaikannya — hal ini bisa terjadi, dan perlu diperiksa sebelum Anda berasumsi bahwa Anda membutuhkannya.
Jangan mengunci versi lama dengan harapan dapat memulihkan perilaku sebelumnya. Kegagalan terjadi di sisi lain koneksi, bukan di dalam paket. Tidak ada rilis sebelumnya yang mengetahui metode deteksi yang diperkenalkan setelah paket tersebut ditulis.
Hapus paket tersebut jika sudah tidak berfungsi lagi. Ketergantungan yang dulu memecahkan masalah yang kini sudah tidak ada lagi adalah paket yang tidak terawat dalam rantai pasokan Anda dan tidak memberikan manfaat apa pun. Situs-situs berpindah masuk dan keluar dari mode-mode Cloudflare yang lebih agresif, dan pipa pengumpulan yang dibangun selama periode agresif tersebut mungkin kini berfungsi dengan baik tanpa perpustakaan tersebut. Uji coba.
Dan anggap kegagalan tersebut sebagai informasi tentang proyek, bukan sebagai bug yang harus diperbaiki. Pipa pengumpulan data yang memerlukan pustaka bypass yang tidak terawat untuk berfungsi menunjukkan adanya masalah struktural, dan waktu yang dihabiskan untuk memulihkannya adalah waktu yang tidak digunakan untuk mencari API, feed, atau orang yang tepat untuk ditanyai. Berdasarkan pengalaman kami, pencarian kedua lebih sering berhasil daripada yang pertama.
Di Mana Proksi Sebenarnya Berperan
Untuk melengkapi pembahasan, karena ini adalah bidang bisnis kami dan memang ada kegunaan nyata.
Mendistribusikan lalu lintas ke berbagai alamat ketika Anda telah mengoptimalkan kecepatan dan satu alamat menjadi kendala. Ini adalah masalah throughput, dan inilah yang diselesaikan oleh proxy.
Mengakses konten khusus wilayah, di mana terlihat seolah-olah berada di suatu tempat adalah inti dari upaya ini.
Melewati jaringan yang memblokir suatu situs, yang merupakan masalah di sisi Anda, bukan di sisi situs tersebut.
Verifikasi iklan dan pemantauan merek, memeriksa pengeluaran Anda dari wilayah yang telah Anda bayar.
Tak satu pun dari hal ini merupakan cara untuk mengelak. Semuanya adalah kasus di mana alamat benar-benar menjadi variabel, dan dalam setiap kasus, titik awal yang masuk akal adalah bandwidth pusat data — milik kami mulai dari $0,14/GB — yang ditingkatkan ke bandwidth perumahan seharga $0,79/GB hanya jika terbukti diperlukan. Angka-angka dari halaman harga kami, diperiksa pada September 2026.
Yang tidak akan kami lakukan adalah menjual paket dengan implikasi bahwa paket tersebut dapat mengelabui model pembelajaran mesin yang memeriksa urutan header. Itu bukanlah fungsi dari alamat IP.
Pertanyaan Lainnya
Apakah Cloudscraper masih berfungsi?
Terhadap perlindungan Cloudflare modern, umumnya tidak. Rilis PyPI terakhir adalah pada April 2023, dan pustaka ini dirancang untuk era ketika tantangannya terutama berupa pemeriksaan JavaScript. Deteksi saat ini menggunakan pembelajaran mesin atas fitur permintaan, analisis urutan header, dan deteksi headless berbasis JavaScript, yang tidak satu pun di antaranya ditangani oleh pemecah tantangan.
Apakah Cloudscraper masih dipelihara?
Repositori tersebut tidak diarsipkan, tetapi rilis terakhirnya adalah pada April 2023 dan commit terbaru — dari Juni 2025 — bersifat administratif, bukan fungsional. Untuk sebuah pustaka yang nilainya sepenuhnya bergantung pada pelacakan target yang terus berubah, tanggal rilis secara efektif merupakan spesifikasinya.
Mengapa Cloudscraper mengembalikan kode status 403?
Karena Cloudflare mengidentifikasi klien melalui sinyal-sinyal yang tidak dikendalikan oleh pustaka tersebut. Urutan header, karakteristik handshake TLS, dan fitur permintaan yang dipelajari melalui pembelajaran mesin semuanya mengarah pada klien HTTP Python, terlepas dari apakah tantangan JavaScript telah diselesaikan atau tidak.
Apakah menggunakan proxy akan membuat cloudscraper berfungsi?
Tidak, kecuali reputasi alamat Anda secara spesifik menjadi alasan Anda ditandai. Deskripsi Cloudflare sendiri mengenai skor botnya mencakup pembelajaran mesin pada fitur permintaan, heuristik, deteksi JavaScript, dan aturan urutan header — tidak satupun dari hal tersebut berubah ketika alamat Anda berubah.
Apa yang bisa saya gunakan sebagai pengganti Cloudscraper?
Cari API resmi, umpan data mitra, atau data yang dipublikasikan di tempat lain tanpa perlindungan. Kemudian pertimbangkan untuk meminta izin langsung kepada situs tersebut, yang seringkali menyelesaikan masalah ini lebih cepat dari yang diharapkan dan menghasilkan akses yang tetap berfungsi. Penyedia data berlisensi seringkali lebih murah daripada waktu pengembangan yang dihabiskan untuk menghindarinya.
Apakah melewati Cloudflare legal?
Pelanggaran syarat dan ketentuan umumnya bersifat kontraktual, bukan pidana, di sebagian besar yurisdiksi, dan konsekuensi yang realistis adalah pemblokiran. Legalitas bergantung pada yurisdiksi, data yang terlibat, dan cara penggunaannya. Situs yang telah menerapkan perlindungan telah menyatakan posisinya, yang patut dipertimbangkan terlepas dari analisis hukum. Ini bukan nasihat hukum.
Mengapa saya mendapatkan respons 200 tanpa konten yang berguna?
Anda mungkin telah mencapai "tarpit". AI Labyrinth dari Cloudflare menyajikan konten yang dihasilkan secara koheren dan masuk akal secara faktual kepada crawler, namun konten tersebut sama sekali tidak relevan dengan situs tersebut, alih-alih memblokirnya. Semua permintaan dikembalikan dengan sukses sementara Anda tidak mendapatkan apa pun, yang memang dirancang demikian.
Apakah menggunakan browser headless lebih efektif?
Metode ini menangani lebih banyak sinyal daripada pustaka berbasis requests, karena browser sungguhan menghasilkan karakteristik TLS dan header yang sebenarnya. Namun, metode ini juga membutuhkan biaya bandwidth dan komputasi yang jauh lebih besar, dan deteksi JavaScript Cloudflare secara khusus menargetkan browser headless. Ini merupakan pertukaran yang berbeda, bukan solusi, dan inti pertanyaannya tetap sama.
Kesimpulan
Cloudscraper berhasil mengatasi masalah nyata dengan baik, dan masalah yang diselesaikannya kini tidak lagi ada dalam bentuk yang semula menjadi tujuan pembuatannya. Rilis fungsional terakhirnya sudah lebih tua daripada beberapa generasi perubahan di sisi lain, dan berkas README perpustakaan itu sendiri menjanjikan pembaruan rutin yang belum terwujud selama lebih dari tiga tahun.
Memahami alasannya lebih bermanfaat daripada mencari penggantinya. Pertanyaan lama adalah apakah sebuah klien dapat menjalankan JavaScript, dan sebuah pustaka dengan mesin JavaScript dapat menjawabnya. Pertanyaan saat ini adalah apakah segala hal tentang klien sesuai dengan klaimnya — urutan header, karakteristik TLS, sinyal browser, perilaku — dan sesi HTTP Python yang mengklaim sebagai Chrome gagal dalam beberapa aspek tersebut secara bersamaan, terlepas dari apa yang diselesaikannya.
Itulah juga mengapa kami tidak akan menjual proxy kepada Anda sebagai solusi. Penjelasan Cloudflare sendiri mengenai cara skor botnya dihasilkan sama sekali tidak menyebutkan alamat klien. Alamat yang lebih baik membantu mengatasi masalah alamat dan tidak ada yang lain.
Yang benar-benar efektif adalah cara yang sederhana namun tahan lama: temukan API-nya, temukan feed-nya, temukan data yang dipublikasikan di tempat lain, atau tanyakan langsung. Terutama cara terakhir ini memiliki tingkat keberhasilan yang jauh lebih tinggi daripada yang disarankan oleh diskusi umum, dan ini adalah satu-satunya cara yang tidak perlu diperbarui setiap kali ada pembaruan deteksi.
