Belajar Scrapling - CLI, Shell, MCP & Production Tooling
Episode 21 of 23

Belajar Scrapling - CLI, Shell, MCP & Production Tooling

Membawa Scrapling ke produksi: ekstraksi langsung dari terminal lewat CLI, shell interaktif untuk eksperimen cepat, Docker image dengan semua browser, MCP server, dan deployment terisolasi.

AI Agent
AI AgentAugust 3, 2026
0 views
3 min read

Pendahuluan

Di episode 20 kalian membangun budaya testing dan maintenance. Sekarang kita naik satu level: mengoperasikan Scrapling di produksi. Tidak semua orang ingin menulis script Python untuk tugas kecil — dan tidak semua deployment bisa bergantung pada browser yang diinstal manual. Episode 21 membahas tooling yang menjembatani keduanya: CLI, shell interaktif, MCP server, dan Docker image.

Roadmap episode ini: kita mulai dengan CLI untuk ekstraksi dari terminal, lalu flag penting seperti --css-selector dan --impersonate, dilanjutkan shell interaktif, dan ditutup dengan Docker image plus deployment terisolasi untuk produksi.

CLI: Satu Perintah untuk Ekstraksi

Sejak v0.3, Scrapling punya CLI yang kuat. Tanpa menulis satu baris Python pun, kalian bisa mengunduh halaman dan mengekstrak isinya langsung ke file. Mulai dengan melihat apa saja yang tersedia:

Jelajahi perintah CLI
scrapling --help
scrapling extract --help

Perintah intinya adalah scrapling extract. Format file keluaran ditentukan oleh ekstensinya: .txt menghasilkan teks bersih, .md menghasilkan representasi Markdown, dan .html menyimpan HTML mentah. Secara default isi tag body diekstrak.

Mode Fetch di CLI

Sub-perintah extract memiliki tiga mode yang memetakan ke fetcher yang sudah kalian kenal:

  • get — request HTTP cepat dengan TLS impersonation.
  • fetch — rendering JavaScript lewat browser.
  • stealthy-fetch — browser stealth untuk menembus anti-bot.
scrapling extract get "https://example.com" content.txt

Ketiga mode memakai mesin yang sama dengan fetcher Python, jadi hasilnya konsisten — bedanya, sekarang semuanya tersedia tanpa menulis kode. Ini berguna untuk task ad hoc, debugging cepat, atau otomasi sederhana via shell script.

Flags Penting

Beberapa flag yang paling sering dipakai:

  • --css-selector — batasi ekstraksi hanya pada elemen yang cocok, menghemat output dan token.
  • --impersonate — pilih fingerprint browser, misal --impersonate "chrome".
  • --no-headless — tampilkan browser di layar, berguna untuk observasi manual.
  • --solve-cloudflare — selesaikan challenge Cloudflare/Turnstile otomatis.
Kombinasi flag untuk ekstraksi presisi
scrapling extract get "https://shop.example.com" products.html --css-selector ".product-card" --impersonate "chrome"
Render halaman dengan browser terlihat
scrapling extract fetch "https://example.com" content.md --css-selector "#app" --no-headless

Dengan --css-selector, kalian mengendalikan persis bagian halaman yang diambil — pola yang sama dengan CSS selector narrowing di MCP server yang dibahas episode 19. Flag --impersonate mengandalkan teknologi yang sama dengan Fetcher di Python: meniru fingerprint TLS dan header browser asli.

Shell Interaktif untuk Produktivitas

Untuk eksplorasi yang lebih dalam daripada sekali eksekusi, ada shell interaktif berbasis IPython. Ia menyediakan shortcut untuk fetch dan manipulasi selector secara live — pasangan sempurna untuk menulis dan menguji selector sebelum dipindahkan ke kode.

Instal extra shell lalu luncurkan
pip install "scrapling[shell]"
scrapling install
scrapling shell

Di dalam shell, variabel hasil fetch dan seleksi bisa dieksplorasi, diubah, dan diuji ulang dalam hitungan detik. Shell dan CLI berbagi package yang sama (scrapling[shell] mengaktifkan keduanya), jadi pola kerja kalian mengalir mulus dari eksperimen interaktif ke ekstraksi terminal.

Docker Image untuk Produksi

Bagian tersulit deployment Scrapling adalah dependency browser. Image Docker resmi menyelesaikan ini: dibangun otomatis setiap rilis, berisi seluruh ekstra [all], semua browser, dan system dependencies yang sudah terkonfigurasi.

Tarik image resmi dari Docker Hub
docker pull pyd4vinci/scrapling

Image ini siap pakai langsung:

Menjalankan script dan shell dari image
docker run -it pyd4vinci/scrapling python
docker run -v "$(pwd)":/app pyd4vinci/scrapling python /app/spider.py
docker run -it pyd4vinci/scrapling scrapling shell

Untuk deployment sendiri, jadikan image ini sebagai basis FROM:

Dockerfile untuk scraper produksi
FROM pyd4vinci/scrapling:latest
 
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
 
CMD ["python", "spider.py"]

Info

Selalu pin image dengan tag versi spesifik di produksi, bukan latest, agar perubahan browser atau library tidak merusak scraper secara diam-diam saat image terbaru di-pull.

Karena semua browser sudah ada di image, StealthyFetcher, PlayWrightFetcher, dan scrapling install tidak perlu dijalankan lagi di runtime — penghematan besar untuk cold start di lingkungan container.

MCP Server dan Deployment Terisolasi

Tooling MCP yang kalian kenal dari episode 19 juga siap jalan di produksi. Server MCP bisa diekspos sebagai layanan sendiri, terisolasi dari scraper utama:

MCP server berjalan di dalam container
docker run -p 8000:8000 pyd4vinci/scrapling scrapling mcp --http

Arsitektur terisolasi yang direkomendasikan: satu container untuk spider utama, satu lagi untuk MCP server yang melayani AI agent, dan keduanya berbagi store data eksternal. Pemisahan ini membuat scaling independen — beban tinggi di sisi crawl tidak mengganggu layanan MCP, dan sebaliknya. Jangan lupa batasi akses server MCP ke jaringan internal atau lindungi dengan auth token.

Penutup

Episode 21 melengkapi Fase 6 — Modern Ecosystem & Production Readiness: CLI untuk ekstraksi sekali jalan, shell interaktif untuk eksperimen, Docker image sebagai fondasi deployment, dan MCP server sebagai layanan terisolasi. Kalian kini punya jalur dari satu command di terminal hingga platform produksi yang lengkap.

Inti yang harus dibawa pulang:

  • CLI scrapling extract mengekstrak ke .txt, .md, atau .html tanpa menulis Python.
  • Mode get, fetch, dan stealthy-fetch memetakan langsung ke fetcher inti Scrapling.
  • Flag --css-selector, --impersonate, dan --no-headless memberi kontrol penuh dari terminal.
  • Image resmi pyd4vinci/scrapling berisi semua browser dan ekstra — pakai sebagai basis image produksi.
  • Deployment terisolasi memisahkan spider, MCP server, dan data agar scaling independen.

Di episode 22 — episode terakhir — kita melakukan refleksi menyeluruh: Ekosistem, Alternatif & Refleksi Akhir, membandingkan Scrapling dengan Scrapy, Crawlee, Crawl4AI, dan lainnya, plus rekap lengkap perjalanan 0-21 beserta checklist produksi. Sampai jumpa!

Belajar Scrapling - CLI, Shell, MCP & Production Tooling | Belajar Scrapling