
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 --versionJika perintah tersebut tidak tersedia, coba:
python3 --versionGunakan 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-crawl4aiBuat virtual environment:
python3 -m venv .venvAktifkan virtual environment di macOS atau Linux:
source .venv/bin/activateJika menggunakan Windows Command Prompt:
.venv\Scripts\activate.batJika menggunakan Windows PowerShell:
.venv\Scripts\Activate.ps1Virtual environment membantu memisahkan paket Python untuk setiap proyek.
Langkah 3: Instal Crawl4AI
Setelah virtual environment aktif, jalankan:
pip install -U crawl4aiPerintah tersebut menginstal atau memperbarui paket Crawl4AI.
Selanjutnya, siapkan browser yang dibutuhkan:
crawl4ai-setupSetelah proses setup selesai, jalankan pemeriksaan instalasi:
crawl4ai-doctorPerintah 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:
AsyncWebCrawlerdigunakan untuk menjalankan proses crawling secara asynchronous.crawler.arun()mengambil konten dari URL yang ditentukan.result.successdigunakan untuk memeriksa apakah proses crawling berhasil.result.markdownberisi 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.pyJika 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.pyJika 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 --versionJika 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:latestKeterangan:
-dmenjalankan container di latar belakang.-p 11235:11235memetakan port server.--name crawl4aimemberikan nama pada container.--shm-size=1gmenyediakan shared memory untuk kebutuhan browser.CRAWL4AI_API_TOKENdigunakan 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 psUntuk melihat log:
docker logs crawl4aiTunggu 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:
- Crawl4AI mengambil konten dari halaman dokumentasi yang diizinkan.
- Konten dikonversi menjadi Markdown.
- Dokumen dibersihkan dan dipecah menjadi beberapa potongan.
- Potongan teks diproses menjadi embedding.
- Embedding disimpan di vector database atau sistem pencarian yang digunakan.
- Ketika pengguna bertanya, aplikasi mencari potongan yang relevan.
- 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:
- Repository GitHub: https://github.com/unclecode/crawl4ai
- Dokumentasi: https://docs.crawl4ai.com/
- Panduan self-hosting: https://docs.crawl4ai.com/core/self-hosting/
- Crawl4AI Cloud: https://crawl4ai.com/
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.