Crawl4AI: Open Source Web Scraping untuk AI Agent, RAG, dan Data Pipeline + Tutorial Instalasi

Foto: Markus Spiske / Pexels

Foto: Markus Spiske / Pexels

Crawl4AI: Open Source Web Scraping untuk AI Agent, RAG, dan Data Pipeline + Tutorial Instalasi

Di era kecerdasan buatan, website bukan hanya sumber informasi bagi manusia. Konten dari website juga dapat digunakan sebagai sumber data untuk AI agent, sistem Retrieval-Augmented Generation (RAG), dan berbagai aplikasi berbasis Large Language Model (LLM).

Namun, mengambil informasi dari website tidak selalu sederhana. Halaman web dapat berisi menu navigasi, iklan, elemen JavaScript, tabel, dan berbagai komponen yang membuat kontennya sulit langsung digunakan oleh model AI.

Di sinilah Crawl4AI, proyek open source untuk web crawling dan scraping yang dirancang bagi kebutuhan LLM dan AI agent, menjadi menarik.

Crawl4AI membantu mengambil konten website dan mengubahnya menjadi Markdown yang lebih terstruktur. Data tersebut kemudian dapat digunakan sebagai bahan untuk pencarian informasi, ekstraksi data, sistem RAG, dan pipeline AI.

Bagi developer yang ingin membangun aplikasi AI menggunakan data dari internet, Crawl4AI merupakan salah satu proyek yang layak dipelajari.

Apa Itu Crawl4AI?

Crawl4AI adalah web crawler dan scraper open source yang berfokus pada kebutuhan aplikasi AI dan LLM.

Alih-alih hanya mengambil HTML mentah, Crawl4AI menyediakan kemampuan untuk menghasilkan Markdown yang mempertahankan struktur konten, seperti judul, paragraf, daftar, tabel, dan blok kode.

Hasil ekstraksi tersebut lebih mudah diproses oleh sistem yang membutuhkan konten website sebagai input.

Crawl4AI dapat digunakan untuk berbagai kebutuhan, antara lain:

  • Mengumpulkan konten dari dokumentasi teknis.
  • Menyiapkan sumber data untuk sistem RAG.
  • Mengambil informasi website menjadi Markdown.
  • Mengekstrak data terstruktur ke JSON.
  • Menyediakan informasi web bagi workflow AI agent.
  • Membangun pipeline pengumpulan dan pemrosesan data.

Proyek ini menyediakan library Python yang dapat dijalankan sendiri, opsi server menggunakan Docker, serta layanan cloud dengan kemampuan tambahan tertentu.

Repository GitHub: https://github.com/unclecode/crawl4ai

Dokumentasi resmi: https://docs.crawl4ai.com/

Fitur Utama Crawl4AI

1. Mengubah website menjadi Markdown

Salah satu kemampuan utama Crawl4AI adalah menghasilkan Markdown dari konten website.

Markdown mempertahankan struktur informasi dengan format yang relatif mudah dibaca manusia maupun diproses oleh LLM.

Crawl4AI juga menyediakan strategi penyaringan konten untuk membantu mengurangi elemen halaman yang kurang relevan, seperti navigasi dan boilerplate.

Fitur ini berguna ketika kamu ingin mengambil informasi dari banyak halaman tanpa harus menangani seluruh struktur HTML secara manual.

2. Ekstraksi data terstruktur ke JSON

Selain menghasilkan Markdown, Crawl4AI mendukung ekstraksi data terstruktur menggunakan CSS selector, XPath, regular expression, dan LLM.

Misalnya, kamu ingin mengambil nama produk, deskripsi, atau informasi tertentu dari halaman web, kemudian menyimpannya dalam format JSON.

Untuk halaman yang memiliki struktur konsisten, ekstraksi berbasis CSS atau XPath dapat menjadi pilihan. Sementara itu, pendekatan berbasis LLM dapat membantu ketika struktur informasi lebih kompleks.

Hasil ekstraksi tetap perlu divalidasi agar sesuai dengan skema dan kebutuhan aplikasi.

3. Crawling banyak halaman

Crawl4AI mendukung strategi crawling seperti breadth-first search (BFS), depth-first search (DFS), dan best-first.

Kemampuan ini berguna ketika sumber data terdiri dari banyak halaman, seperti dokumentasi produk, artikel, atau situs dengan struktur tautan yang saling terhubung.

Crawl4AI juga menyediakan kemampuan penemuan URL dan pengelolaan proses crawling untuk kebutuhan yang lebih kompleks.

Dengan perencanaan yang tepat, developer dapat mengumpulkan konten relevan secara lebih terstruktur.

4. Mendukung halaman dinamis berbasis JavaScript

Sebagian website memuat konten menggunakan JavaScript. Mengambil HTML awal saja terkadang belum cukup untuk mendapatkan informasi yang lengkap.

Crawl4AI menyediakan kontrol browser untuk membantu memproses halaman dinamis, menunggu elemen tertentu, melakukan scrolling, dan mengambil konten yang dimuat secara bertahap.

Proyek ini mendukung Chromium, Firefox, dan WebKit sesuai konfigurasi yang digunakan.

Keberhasilan ekstraksi tetap bergantung pada struktur website, konfigurasi browser, autentikasi, dan kebijakan akses yang berlaku.

5. Integrasi dengan AI agent

Crawl4AI dapat menjadi bagian dari workflow AI agent yang membutuhkan informasi dari website.

Dokumentasi proyek menyediakan opsi integrasi melalui Model Context Protocol (MCP), termasuk untuk layanan cloud dan konfigurasi self-hosted yang didukung.

Dengan pendekatan ini, AI agent dapat menggunakan kemampuan crawling sebagai bagian dari proses memperoleh informasi.

Namun, Crawl4AI bukan model AI yang otomatis memahami seluruh website dan menghasilkan jawaban akhir. Pengelolaan konteks, retrieval, evaluasi informasi, dan pembuatan jawaban tetap bergantung pada komponen aplikasi yang menggunakannya.

Tutorial Instalasi Crawl4AI Menggunakan Python

Untuk pemula, cara termudah memulai Crawl4AI adalah melalui library Python.

Tutorial ini mencakup persiapan lingkungan, instalasi paket, konfigurasi browser, dan pengujian scraping pertama.

Langkah 1: Instal Python

Pastikan Python sudah terpasang di komputer.

Periksa melalui terminal:

python --version

Jika perintah tersebut tidak tersedia, coba:

python3 --version

Gunakan versi Python yang kompatibel dengan rilis Crawl4AI yang akan diinstal. Persyaratan versi terbaru dapat diperiksa pada dokumentasi dan metadata paket.

Jika Python belum tersedia, unduh dari situs resmi:

https://www.python.org/downloads/

Langkah 2: Buat folder proyek

Buat direktori khusus untuk proyek Crawl4AI agar dependensinya tidak bercampur dengan proyek Python lain.

mkdir belajar-crawl4ai
cd belajar-crawl4ai

Buat virtual environment:

python3 -m venv .venv

Aktifkan virtual environment di macOS atau Linux:

source .venv/bin/activate

Jika menggunakan Windows Command Prompt:

.venv\Scripts\activate.bat

Jika menggunakan Windows PowerShell:

.venv\Scripts\Activate.ps1

Virtual environment membantu memisahkan paket Python untuk setiap proyek.

Langkah 3: Instal Crawl4AI

Setelah virtual environment aktif, jalankan:

pip install -U crawl4ai

Perintah tersebut menginstal atau memperbarui paket Crawl4AI.

Selanjutnya, siapkan browser yang dibutuhkan:

crawl4ai-setup

Setelah proses setup selesai, jalankan pemeriksaan instalasi:

crawl4ai-doctor

Perintah doctor membantu memeriksa konfigurasi dan kemungkinan masalah pada lingkungan instalasi.

Jika instalasi browser gagal, ikuti petunjuk pada dokumentasi resmi sesuai sistem operasi yang digunakan.

Dokumentasi instalasi: https://docs.crawl4ai.com/

Membuat Web Scraping Pertama dengan Crawl4AI

Setelah instalasi selesai, kita akan mencoba mengambil konten dari sebuah website dan menampilkan hasilnya dalam format Markdown.

Langkah 4: Buat file Python

Buat file bernama main.py di dalam folder proyek.

Masukkan kode berikut:

import asyncio
from crawl4ai import AsyncWebCrawler


async def main():
    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(
            url="https://news.ycombinator.com"
        )

        if result.success:
            print(result.markdown)
        else:
            print("Crawling gagal")


if __name__ == "__main__":
    asyncio.run(main())

Penjelasan kode:

  • AsyncWebCrawler digunakan untuk menjalankan proses crawling secara asynchronous.
  • crawler.arun() mengambil konten dari URL yang ditentukan.
  • result.success digunakan untuk memeriksa apakah proses crawling berhasil.
  • result.markdown berisi hasil Markdown yang dapat ditampilkan atau diproses lebih lanjut.
  • asyncio.run() menjalankan fungsi asynchronous dari program Python.

Pada contoh ini, URL yang digunakan adalah Hacker News. Kamu dapat menggantinya dengan halaman lain yang memang boleh diakses dan diambil kontennya.

Langkah 5: Jalankan program

Jalankan perintah berikut dari terminal:

python main.py

Jika Python, browser, dan koneksi jaringan sudah dikonfigurasi dengan benar, terminal akan menampilkan hasil ekstraksi konten dalam format Markdown.

Jika terjadi kesalahan, periksa kembali instalasi browser, akses jaringan, dan pesan error yang ditampilkan.

Menyimpan Hasil Scraping ke File Markdown

Untuk penggunaan lebih lanjut, hasil crawling bisa disimpan ke file agar dapat digunakan kembali tanpa harus langsung membaca output terminal.

Ganti isi main.py dengan kode berikut:

import asyncio
from pathlib import Path
from crawl4ai import AsyncWebCrawler


async def main():
    url = "https://news.ycombinator.com"

    async with AsyncWebCrawler() as crawler:
        result = await crawler.arun(url=url)

        if not result.success:
            print("Crawling gagal")
            return

        markdown = result.markdown

        Path("hasil-scraping.md").write_text(
            markdown,
            encoding="utf-8"
        )

        print("Hasil disimpan ke hasil-scraping.md")


if __name__ == "__main__":
    asyncio.run(main())

Jalankan kembali:

python main.py

Jika berhasil, file hasil-scraping.md akan dibuat di direktori proyek.

File tersebut dapat dibuka dengan editor teks, digunakan sebagai sumber dokumentasi, atau diproses lebih lanjut oleh aplikasi AI.

Untuk proyek yang menggunakan banyak halaman, kamu dapat mengembangkan proses ini dengan penamaan file berdasarkan URL, penyimpanan metadata sumber, dan pengelolaan waktu pengambilan data.

Menjalankan Crawl4AI Menggunakan Docker

Selain library Python, Crawl4AI dapat dijalankan sebagai server berbasis Docker.

Metode ini cocok jika kamu ingin menyediakan kemampuan scraping melalui HTTP API sehingga dapat dipanggil oleh aplikasi lain, termasuk backend Node.js, NestJS, Laravel, atau sistem AI agent.

Langkah 1: Pastikan Docker terpasang

Periksa instalasi Docker:

docker --version

Jika belum tersedia, ikuti panduan instalasi resmi:

https://docs.docker.com/get-started/get-docker/

Langkah 2: Buat token autentikasi

Server Crawl4AI memerlukan token untuk melindungi endpoint API.

Pada macOS atau Linux, jalankan:

export CRAWL4AI_API_TOKEN="$(openssl rand -hex 32)"

Simpan token tersebut dengan aman. Jangan menuliskannya langsung ke repository publik atau membagikannya kepada pihak yang tidak berwenang.

Langkah 3: Jalankan container

Jalankan perintah berikut:

docker run -d \
  -p 11235:11235 \
  --name crawl4ai \
  --shm-size=1g \
  -e CRAWL4AI_API_TOKEN="$CRAWL4AI_API_TOKEN" \
  unclecode/crawl4ai:latest

Keterangan:

  • -d menjalankan container di latar belakang.
  • -p 11235:11235 memetakan port server.
  • --name crawl4ai memberikan nama pada container.
  • --shm-size=1g menyediakan shared memory untuk kebutuhan browser.
  • CRAWL4AI_API_TOKEN digunakan sebagai token autentikasi.

Perintah ini mengikuti pola deployment yang dijelaskan pada repository proyek. Untuk penggunaan produksi, sebaiknya uji versi image yang digunakan dan tetapkan versi yang sudah diverifikasi.

Langkah 4: Periksa status container

Jalankan:

docker ps

Untuk melihat log:

docker logs crawl4ai

Tunggu sampai server siap menerima permintaan. Jika container gagal berjalan, periksa log dan konfigurasi environment.

Langkah 5: Uji endpoint API

Setelah server berjalan, gunakan curl untuk menguji endpoint Markdown:

curl -s http://localhost:11235/md \
  -H "Authorization: Bearer $CRAWL4AI_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://news.ycombinator.com"}'

Permintaan ini mengirimkan URL target kepada server Crawl4AI untuk diproses.

Jika server berjalan dengan benar, token valid, dan website dapat diakses, respons akan berisi hasil pemrosesan sesuai endpoint yang digunakan.

Dashboard dan playground juga tersedia pada port server sesuai konfigurasi proyek:

  • Dashboard: http://localhost:11235/dashboard
  • Playground: http://localhost:11235/playground

Alamat tersebut sebaiknya hanya diakses melalui lingkungan yang aman. Hindari membuka dashboard atau API tanpa pengamanan yang sesuai.

Panduan self-hosting lengkap: https://docs.crawl4ai.com/core/self-hosting/

Menggunakan Crawl4AI untuk Membangun Sistem RAG

Setelah memahami dasar crawling, langkah berikutnya adalah menggunakan hasil ekstraksi sebagai sumber data untuk sistem RAG.

Sebagai contoh, kamu ingin membuat asisten AI yang dapat menjawab pertanyaan berdasarkan dokumentasi suatu proyek.

Alur kerjanya dapat dirancang seperti berikut:

  1. Crawl4AI mengambil konten dari halaman dokumentasi yang diizinkan.
  2. Konten dikonversi menjadi Markdown.
  3. Dokumen dibersihkan dan dipecah menjadi beberapa potongan.
  4. Potongan teks diproses menjadi embedding.
  5. Embedding disimpan di vector database atau sistem pencarian yang digunakan.
  6. Ketika pengguna bertanya, aplikasi mencari potongan yang relevan.
  7. Model AI menghasilkan jawaban berdasarkan konteks yang ditemukan.

Dalam arsitektur ini, Crawl4AI bertanggung jawab pada tahap crawling dan ekstraksi. Komponen embedding, penyimpanan vektor, retrieval, dan generasi jawaban harus disediakan secara terpisah.

Simpan juga URL sumber dan waktu pengambilan data agar informasi dapat ditelusuri dan diperbarui ketika halaman aslinya berubah.

Memilih Library Python, Docker, atau Cloud

Crawl4AI menyediakan beberapa pendekatan penggunaan yang memiliki kebutuhan operasional berbeda.

Library Python cocok untuk developer yang ingin memulai eksperimen atau mengintegrasikan crawling langsung ke dalam program Python.

Self-hosted menggunakan Docker cocok jika kemampuan crawling perlu disediakan sebagai layanan HTTP untuk beberapa aplikasi.

Crawl4AI Cloud merupakan alternatif terkelola dengan API tambahan untuk pencarian, ekstraksi, dan penggunaan AI agent sesuai layanan yang tersedia. Penggunaannya memiliki model biaya tersendiri, sehingga periksa harga dan ketentuan terbaru sebelum digunakan.

Pilih metode berdasarkan kebutuhan kontrol, skala crawling, sumber daya server, dan kompleksitas pemeliharaan.

Hal yang Perlu Diperhatikan Saat Melakukan Web Scraping

Web scraping bukan hanya persoalan mengambil sebanyak mungkin data.

Sebelum menjalankan crawler, periksa ketentuan penggunaan website, aturan akses yang relevan, dan hak atas konten yang dikumpulkan. Atur frekuensi permintaan agar tidak membebani server sumber.

Jika scraping digunakan untuk aplikasi AI, validasi pula kualitas informasi, duplikasi konten, tanggal pembaruan, dan sumber asli.

Markdown yang rapi tidak otomatis menjamin data benar. Sistem AI yang menggunakan hasil crawling tetap membutuhkan mekanisme validasi, pengelolaan sumber, dan evaluasi hasil.

Untuk penggunaan produksi, pertimbangkan pula pencatatan error, pengelolaan cache, pembatasan URL tujuan, pengamanan kredensial, dan pemantauan sumber daya.

Kesimpulan

Crawl4AI adalah proyek open source yang membantu developer mengambil informasi dari website dan menyiapkannya dalam format yang lebih mudah digunakan oleh LLM serta aplikasi AI.

Kemampuan konversi Markdown, ekstraksi data terstruktur, crawling banyak halaman, kontrol browser, dan integrasi dengan workflow AI menjadikannya relevan untuk pengembangan AI agent, RAG, dan data pipeline.

Untuk memulai, instal Crawl4AI melalui Python, jalankan contoh scraping pertama, kemudian simpan hasilnya dalam file Markdown. Jika membutuhkan layanan yang dapat dipanggil oleh beberapa aplikasi, kamu dapat mengeksplorasi opsi deployment menggunakan Docker.

Mulailah dari satu halaman, pahami hasil ekstraksinya, lalu kembangkan sesuai kebutuhan proyek.

Pelajari Crawl4AI lebih lanjut:

Artikel ini disusun berdasarkan dokumentasi proyek Crawl4AI. Periksa dokumentasi terbaru untuk memastikan persyaratan Python, konfigurasi browser, endpoint, dan metode deployment yang sesuai dengan versi yang digunakan.

Posting Komentar