Crawl4AI: Web Crawling yang Dioptimalkan untuk Pipeline AI

# Crawl4AI: Web Crawling yang Dioptimalkan untuk Pipeline AI Dalam membangun aplikasi AI modern, terutama yang berbasis Retrieval-Augmented Generation (RAG), salah satu tantangan terbesar adalah **me...

By Ruby Abdullah · · tutorial
Crawl4AIWeb ScrapingAIData PipelinePython

Crawl4AI: Web Crawling yang Dioptimalkan untuk Pipeline AI

Dalam membangun aplikasi AI modern, terutama yang berbasis Retrieval-Augmented Generation (RAG), salah satu tantangan terbesar adalah mendapatkan data berkualitas tinggi dari web. Kebanyakan web scraper tradisional menghasilkan HTML mentah yang berantakan dan sulit diproses oleh LLM.

Crawl4AI hadir sebagai solusi open-source yang dirancang khusus untuk kebutuhan AI. Crawl4AI menghasilkan output berupa clean markdown dan structured data yang siap digunakan langsung dalam pipeline AI Anda.

Apa Itu Crawl4AI?

Crawl4AI adalah library Python open-source untuk web crawling yang dioptimalkan untuk AI dan data pipeline. Fitur utamanya meliputi:

  • Output Clean Markdown: Otomatis mengkonversi halaman web menjadi markdown bersih
  • Async Crawling: Dukungan asynchronous untuk crawling paralel yang cepat
  • LLM-Based Extraction: Ekstraksi data terstruktur menggunakan LLM
  • CSS-Based Extraction: Ekstraksi data menggunakan CSS selector tanpa LLM
  • JavaScript Rendering: Menangani halaman yang di-render oleh JavaScript
  • Chunking Strategies: Berbagai strategi untuk memecah konten menjadi chunk yang optimal
  • Session Management: Mengelola cookies dan session untuk crawling yang kompleks

Instalasi

Instalasi Dasar

pip install crawl4ai

Setup Browser (Playwright)

Crawl4AI menggunakan Playwright untuk rendering halaman web. Setelah instalasi, jalankan setup browser:

# Install browser Chromium

crawl4ai-setup

Atau manual via playwright

playwright install chromium

Instalasi dengan Dependensi Lengkap

# Dengan dukungan semua fitur

pip install "crawl4ai[all]"

Verifikasi Instalasi

import crawl4ai

print(f"Crawl4AI version: {crawl4ai.version}")

Basic Crawling

Crawling Halaman Sederhana

import asyncio

from crawl4ai import AsyncWebCrawler

async def basiccrawl():

async with AsyncWebCrawler() as crawler:

result = await crawler.arun(url="https://example.com")

# Status crawling

print(f"Status: {result.success}")

print(f"Status Code: {result.statuscode}")

# Konten dalam markdown

print(f"Markdown length: {len(result.markdown)}")

print(result.markdown[:500])

# Clean markdown (tanpa navigasi, footer, dll.)

print(f"\nClean markdown length: {len(result.cleanedhtml)}")

Jalankan

asyncio.run(basiccrawl())

Menggunakan Fit Markdown

Crawl4AI menyediakan fitmarkdown yang merupakan versi markdown yang sudah difilter dari elemen-elemen tidak penting:

async def crawlwithfitmarkdown():

async with AsyncWebCrawler() as crawler:

result = await crawler.arun(url="https://docs.python.org/3/tutorial/")

# Markdown mentah - termasuk navigasi, sidebar, dll.

print(f"Raw markdown: {len(result.markdown)} chars")

# Fit markdown - hanya konten utama

print(f"Fit markdown: {len(result.fitmarkdown)} chars")

# Gunakan fitmarkdown untuk input ke LLM

print(result.fitmarkdown[:500])

asyncio.run(crawlwithfitmarkdown())

Konfigurasi Crawler

from crawl4ai import AsyncWebCrawler, CrawlerRunConfig, BrowserConfig

async def configuredcrawl():

# Konfigurasi browser

browserconfig = BrowserConfig(

headless=True,

browsertype="chromium",

verbose=True

)

# Konfigurasi crawling

runconfig = CrawlerRunConfig(

wordcountthreshold=10, # Minimum kata per blok

excludeexternallinks=True, # Abaikan link eksternal

removeoverlayelements=True, # Hapus popup/overlay

processiframes=False # Abaikan iframes

)

async with AsyncWebCrawler(config=browserconfig) as crawler:

result = await crawler.arun(

Artikel Terkait

Tutorial dlt: Pipeline Ingestion Data Berbasis Python

Membangun Pipeline EL Berbasis Python dengan dlt (data load tool) Sebagian besar tim data menghabiskan waktu yang tidak ...

Tutorial Dagster: Orkestrasi Data dengan Software-Defined Assets

Dagster: Orkestrasi Data Modern dengan Software-Defined Assets Dagster adalah orkestrator data yang menyusun pipeline be...

Firecrawl: Web Scraping API untuk Aplikasi AI dan LLM

Firecrawl: Web Scraping API untuk Aplikasi AI dan LLM Firecrawl adalah managed web scraping API yang dirancang khusus un...

Tutorial Milvus: Distributed Vector Database untuk AI

Tutorial 10: Milvus - Database Vektor Terdistribusi untuk AI Daftar Isi Pendahuluan Prasyarat Arsitektur Milvus [Instala...