Belajar Scrapling - Integrasi AI & LLM Extraction
Episode 19 of 23

Belajar Scrapling - Integrasi AI & LLM Extraction

Menggabungkan Scrapling dengan model AI: ekstraksi data cerdas lewat scrapling[ai] dan WebScrapingAI, MCP server untuk AI agent, pemilihan elemen via CSS sebelum diteruskan ke LLM untuk menghemat token, hingga LLM-led parsing dan validation.

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

Pendahuluan

Di episode 18 kalian mengoptimalkan performa: benchmark parser, pemilihan fetcher, dan teknik memory. Kali ini kita menggabungkan kekuatan itu dengan kecerdasan buatan. Website berubah terus, dan selector yang ditulis manual sering patah — di sinilah LLM hadir sebagai lapisan yang fleksibel. Episode 19 ini membahas integrasi AI & LLM extraction di ekosistem Scrapling.

Roadmap episode ini: kita mulai dari mengapa AI berguna untuk ekstraksi, lalu bahas scrapling[ai] dan WebScrapingAI sebagai AI fetchers, kemudian MCP server yang membuka kemampuan Scrapling untuk AI agent, dan terakhir LLM-led parsing beserta validation hasil ekstraksi.

Mengapa AI untuk Ekstraksi

Selector CSS dan XPath itu deterministik: kencang, murah, dan presisi. Tapi mereka rapuh terhadap perubahan struktur DOM. AI sebaliknya: fleksibel memahami maksud, tapi tidak gratis — setiap panggilan model memakan waktu dan biaya token.

Strategi terbaik adalah kombinasi keduanya. Scrapling menyelesaikan bagian deterministik (fetch, bypass anti-bot, memilih elemen), dan LLM menyelesaikan bagian fleksibel (memahami isi, menormalkan format, mengekstrak field yang tidak punya pola pasti). Dengan mempersempit konten yang diteruskan ke model, kalian mendapat fleksibilitas tanpa membakar token untuk seluruh halaman.

AI Fetchers: scrapling[ai] dan WebScrapingAI

Ekstra scrapling[ai] menambahkan dependensi untuk MCP server dan tooling AI. Instalasi dan persiapan browsernya:

Pasang ekstra AI dan dependency browser
pip install "scrapling[ai]"
scrapling install

Setelah itu, semua fetcher inti tetap tersedia — Fetcher untuk halaman ringan, StealthyFetcher untuk anti-bot — namun kini siap dipakai dari dalam alur AI.

Lapisannya bisa diperkuat dengan WebScrapingAI, layanan hosted yang mengelola rendering JavaScript, proxy, dan parsing lewat API. Ia berguna saat tim tidak ingin mengelola infrastruktur browser sendiri: tinggal kirim URL, dan hasilnya dikembalikan sebagai teks bersih atau struktur JSON siap olah. Kuncinya dipegang lewat environment variable, bukan hardcode di kode.

Warning

Jangan pernah menuliskan API key di kode atau commit ke repositori. Gunakan environment variable atau secret manager, dan simpan key tersebut sebagai rahasia CI seperti yang dibahas di episode keamanan.

MCP Server untuk AI Agent

Fitur andalan ekosistem AI di Scrapling adalah MCP server. MCP (Model Context Protocol) adalah standar yang memungkinkan AI agent — misalnya Claude Desktop, Claude Code, atau Cursor — memanggil tool web scraping langsung secara percakapan. Mulai servernya cukup dengan perintah scrapling mcp:

Jalankan MCP server (transport stdio)
scrapling mcp

Untuk dipakai remote atau dari aplikasi lain, gunakan transport Streamable HTTP:

MCP server via HTTP dengan token
scrapling mcp --http --auth-token "$(openssl rand -hex 32)"

Tool yang diekspos oleh server mencakup get dan bulk_get untuk request HTTP cepat, fetch dan bulk_fetch untuk rendering browser, stealthy_fetch untuk menembus anti-bot, plus open_session, close_session, list_sessions, dan screenshot untuk mengelola sesi browser yang persisten.

Konfigurasi di klien MCP biasanya berbentuk deklarasi server, misalnya di Claude Desktop:

Daftarkan Scrapling MCP di klien
{
  "mcpServers": {
    "ScraplingServer": {
      "command": "scrapling",
      "args": ["mcp"]
    }
  }
}

Dengan konfigurasi ini, kalian bisa memberi perintah bahasa alami seperti: "Ambil semua judul produk dari URL ini dengan selector .product-title, lalu rangkum harganya." Server mengeksekusi scraping-nya, dan model menangani interpretasi hasilnya.

Mempersempit Konten untuk Hemat Token

Keunggulan unik MCP server Scrapling: kalian bisa mengarahkan CSS selector sebelum konten dikirim ke AI. Server lain mengirim seluruh halaman ke model sehingga token terbuang untuk konten yang tidak relevan. Scrapling memilih elemen target lebih dulu, baru meneruskan bagian itu saja — ekstraksi lebih cepat dan lebih murah.

PythonPola di sisi kode: sempitkan dulu, proses setelah
from scrapling import Fetcher
 
page = Fetcher().get("https://shop.example.com/products")
cards = page.css(".product-card")
 
for card in cards:
    print(card.get_all_text(separator=" | "))

Server MCP juga melakukan sanitasi konten secara default: elemen tersembunyi CSS, aria-hidden, template tags, komentar HTML, dan karakter zero-width dibuang. Ini mencegah halaman jahat menyuntikkan instruksi ke konteks model — serangan yang dikenal sebagai prompt injection.

LLM-led Parsing dan Validation

Di sisi aplikasi, pola umumnya begini: kumpulkan konten target, serahkan ke LLM untuk mengekstrak field, lalu validasi hasilnya sebelum dipakai. Validation kritis karena output model tidak selalu konsisten — tipe data bisa berubah, field bisa hilang.

PythonValidasi hasil LLM dengan schema sederhana
import json
from typing import TypedDict
 
 
class Product(TypedDict):
    title: str
    price: float
    in_stock: bool
 
 
raw = '{"title": "Kaos Polos", "price": "99000", "in_stock": "true"}'
data = json.loads(raw)
 
 
def validate(item: dict) -> Product:
    assert isinstance(item["title"], str), "title harus string"
    item["price"] = float(item["price"])
    item["in_stock"] = item["in_stock"].lower() == "true"
    return item
 
 
print(validate(data))

Setelah validasi, data bisa langsung di-serialize ke JSON atau disimpan ke database. Prinsipnya: LLM untuk fleksibilitas, schema untuk kepastian. Di produksi, gabungkan keduanya — biarkan model mengisi field, lalu lempar item yang gagal validasi ke jalur retry atau review manual alih-alih mencemari dataset.

Penutup

Episode ini membuka jalur ekstraksi berbasis AI: scrapling[ai] sebagai fondasi tooling, WebScrapingAI sebagai opsi hosted, MCP server sebagai jembatan ke AI agent, dan pola LLM-led parsing yang diakhiri validasi schema. Kunci efisiensinya ada di satu kalimat: sempitkan konten dulu, biarkan model bekerja hanya pada bagian yang relevan.

Inti yang harus dibawa pulang:

  • AI menggantikan fleksibilitas, bukan determinisme — gabungkan selector Scrapling dengan kekuatan pemahaman LLM.
  • scrapling[ai] dan scrapling install menyiapkan tooling AI plus dependency browser.
  • MCP server membuka Scrapling untuk AI agent lewat scrapling mcp, termasuk transport HTTP dengan auth token.
  • CSS selector narrowing menghemat token — jangan kirim seluruh halaman ke model.
  • Validasi selalu — output LLM tidak boleh langsung masuk dataset tanpa cek schema.

Di episode 20, kita membahas sisi kualitas kode: Testing, Debugging & Maintenance — interactive shell, inspeksi tree, verifikasi selector, monitoring perubahan website, dan CI untuk regression. Sampai jumpa!

Belajar Scrapling - Integrasi AI & LLM Extraction | Belajar Scrapling