Scraping Website Anti-Bot dengan Scrapling: Bypass Cloudflare Python
FA
Faris Aksa

Dipublikasikan 1 Juni 2026

Scraping Website Anti-Bot dengan Scrapling: Bypass Cloudflare Python

Scrapling adalah library Python yang dirancang khusus untuk scraping modern web yang dilindungi anti-bot measures seperti Cloudflare, DataDome, dan PerimeterX. Berbeda dengan Scrapy atau BeautifulSoup yang sering kena block, Scrapling menggunakan kombinasi browser automation stealth, intelligent session handling, dan request fingerprint randomization untuk mensimulasikan perilaku browser real user. Library ini menjadi trending topic di GitHub karena efektivitasnya yang tinggi tanpa membutuhkan proxy rotasi yang mahal.

Installasi dan Dependency

Scrapling bisa diinstall langsung dari PyPI. Library ini membutuhkan Playwright sebagai backend browser automation, jadi pastikan kamu juga menginstall browser binaries:

pip install scrapling
playwright install chromium

Pastikan Python versi 3.8 atau lebih baru. Untuk sistem Linux headless, mungkin diperlukan installasi dependency sistem tambahan seperti libnss3 dan libatk-bridge2.0-0. Scrapling mendukung mode headless dan headful, tapi untuk production scraping, mode headless dengan stealth plugin adalah pilihan paling efisien.

Scraping Pertama dengan Stealth Mode

Berikut contoh dasar untuk mengakses website yang dilindungi Cloudflare:

from scrapling import Fetcher

fetcher = Fetcher(stealth=True)
page = fetcher.get("https://example-protected-site.com/products")
print(page.title)
print(page.text)

Dengan mengaktifkan stealth=True, Scrapling otomatis melakukan beberapa tindakan: menghapus webdriver property dari navigator, menspoof plugins list, randomize user-agent, dan mengemulasi mouse movements. Hal ini membuat deteksi bot menjadi jauh lebih sulit bagi anti-bot systems.

Handling Dynamic Content dan SPA

Untuk website Single Page Application (SPA) yang meng-load konten via JavaScript, gunakan method fetch dengan auto-scroll dan wait condition:

from scrapling import Fetcher

fetcher = Fetcher(stealth=True)
page = fetcher.fetch(
    "https://spa-ecommerce.com/items",
    wait_for=".product-card",
    scroll=True,
    scroll_iterations=5
)

products = page.find_all(".product-card")
for product in products:
    print(product.find(".title").text)
    print(product.find(".price").text)

Parameter wait_for memastikan element tertentu sudah ada di DOM sebelum Scrapling return result. scroll=True dengan scroll_iterations akan melakukan scroll halaman secara bertahap untuk memicu lazy-loading gambar dan data tambahan.

Session Management dan Cookie Persistency

Untuk scraping yang membutuhkan login atau multi-step navigation, gunakan session persistence:

from scrapling import Fetcher

# Buat session
fetcher = Fetcher(stealth=True, session_name="my_session")

# Login step
login_page = fetcher.post(
    "https://site.com/login",
    data={"username": "user", "password": "pass"}
)

# Akses halaman yang membutuhkan auth
protected_page = fetcher.get("https://site.com/dashboard")
print(protected_page.status)

Session akan secara otomatis menyimpan cookies dan local storage. Kamu juga bisa export session state ke file dan reload di instance berbeda menggunakan parameter session_path. Ini sangat berguna untuk scraping berkelanjutan tanpa perlu login ulang setiap kali script dijalankan.

Optimasi dan Etika Scraping

Meski Scrapling powerful, tetap penting untuk scraping secara etis dan legal. Selalu periksa robots.txt website target dan hindari membebani server dengan request rate yang terlalu tinggi.

Tips optimasi tambahan:

  • Gunakan retry parameter untuk handling intermittent failures
  • Aktifkan proxy parameter jika target memiliki rate limit ketat
  • Manfaatkan cache untuk development dan testing agar tidak spam server
  • Gunakan debug=True untuk melihat request-response detail saat troubleshooting

Scrapling juga mendukung integration dengan Scrapy melalui custom downloader middleware. Jika kamu sudah punya pipeline Scrapy yang kompleks, bisa mengadopsi Scrapling hanya untuk website yang sulit diakses dengan request biasa.

Library ini open source dan tersedia di GitHub repository D4Vinci/Scrapling. Dokumentasi API lengkap dan contoh-contoh use case tersedia di README project.