Dipublikasikan 1 Juni 2026
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.
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 chromiumPastikan 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.
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.
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.
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.
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:
retry parameter untuk handling intermittent failuresproxy parameter jika target memiliki rate limit ketatcache untuk development dan testing agar tidak spam serverdebug=True untuk melihat request-response detail saat troubleshootingScrapling 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.
Dapatkan feedback, users, dan eksposur dari komunitas kreator, developer, dan entrepreneur digital Indonesia.
Submit Produk → Pelajari Dulu