Lewati ke konten utama

Firecrawl: Perayap Web AI untuk Aplikasi LLM

Pelajari bagaimana Firecrawl menyederhanakan ekstraksi data web dengan alat crawling, scraping, dan mapping bertenaga AI. Ketahui cara menggunakannya dengan Python dan agen AI untuk mendukung alur kerja modern.
· 8 mnt Baca

Jelajahi bersama AI

Firecrawl adalah jenis perayap web baru yang dioptimalkan untuk alur kerja AI. Ini memungkinkan pengembang melakukan scraping halaman, situs web, bahkan seluruh web. Firecrawl sangat cocok untuk menyederhanakan scraping web tradisional dengan fitur seperti dukungan JavaScript, konversi otomatis ke markdown, dan integrasi dengan kerangka kerja LLM populer.

Dalam artikel ini, saya tidak hanya akan menjelaskan fungsi utama Firecrawl, tetapi juga memberikan beberapa kiat lanjutan yang fungsional, integrasi ekosistem, dan menyebutkan aplikasi dunia nyata, sehingga Anda dapat langsung mencobanya sendiri.

Apa Itu Firecrawl?

Firecrawl adalah perayap web bertenaga AI yang dikembangkan oleh Mendable.ai. Ini adalah layanan API yang merayapi situs web dan mengonversinya menjadi data bersih yang siap LLM seperti markdown, JSON, dan lain-lain.

Pendekatan berbasis AI ini memahami konteks halaman dan mengekstrak konten utama secara jelas, berbeda dengan scraper tradisional seperti BeautifulSoup atau Puppeteer, yang merayapi web secara membabi buta dan sering mengembalikan data yang tidak bersih. Firecrawl mampu mengubah seluruh situs web menjadi markdown yang rapi atau data terstruktur, dan ideal untuk tugas-tugas LLM.

Firecrawl memiliki 3 mode inti, yang akan saya bahas sebentar lagi. Umumnya Anda akan menggunakan mode scrape untuk scraping satu URL, mode crawl untuk scraping seluruh situs, dan mode map untuk penemuan URL.

Fitur Utama Firecrawl

Keunggulan Firecrawl adalah tidak memerlukan sitemap karena memiliki mekanisme navigasi cerdas, mampu menangani JavaScript berat dan konten web dinamis, keluarannya bisa berupa markdown bersih, HTML, JSON, tangkapan layar, dan lainnya sehingga sangat fleksibel, memiliki proxy, anti-bot, dan mekanisme caching bawaan, mendukung pemrosesan batch dan berjalan serentak untuk pekerjaan skala besar, sangat dapat dikustomisasi karena Anda bisa mengecualikan tag, merayapi dengan header kustom, menetapkan kedalaman crawl, dan lainnya, terintegrasi baik dengan kerangka kerja LLM seperti LangChain, LlamaIndex, dan CrewAI, dan tentu ramah untuk kebutuhan enterprise karena Anda dapat mengatur rate-limit, kontrol konkurensi, dan reliabilitas.

Cara Menyiapkan Firecrawl

Hal menyenangkan dari Firecrawl adalah Anda bisa menyiapkannya dengan sangat cepat. Berikut langkah-langkah utama untuk memasangnya di sistem Anda:

Konfigurasi kunci API

  1. Daftar di firecrawl.dev untuk mendapatkan kunci API.
  2. Instal pustaka klien Python:
pip install firecrawl

Dan jika Anda menggunakan langchain, gunakan

pip install firecrawl-py
  1. Simpan kunci API dengan aman menggunakan variabel lingkungan:
import os
from firecrawl import FirecrawlApp

# Set your Firecrawl API key as an environment variable for security
api_key = os.getenv('FIRECRAWL_API_KEY')
# Create an instance of the FirecrawlApp class with your API key 
app = FirecrawlApp(api_key=api_key)

Contoh scraping dasar

Anda bisa langsung melakukan scraping pertama menggunakan metode .scrape_url():

response = app.scrape_url(url=example.com', formats=['markdown'])
print(response)

Kode ini mengambil konten utama halaman web firecrawl.dev sebagai markdown.

Memahami Mode dan Endpoint Firecrawl

Firecrawl memiliki tiga mode inti yang menentukan seberapa luas Anda ingin melakukan scraping. Pada bagian ini, saya akan memandu Anda melalui masing-masing mode.

Mode scrape

Mode scrape menargetkan URL individual. Ini ideal untuk mengekstrak detail produk atau artikel berita. Parameter llm_extract memungkinkan ekstraksi berbasis skema. Yang perlu Anda lakukan adalah mendefinisikan skema yang Anda inginkan untuk JSON akhir, memulai konfigurasi, dan mulai scraping:

from firecrawl import JsonConfig
from pydantic import BaseModel

# Define the expected data structure for the JSON extraction schema
class ExtractSchema(BaseModel):
    company_mission: str
    supports_sso: bool
    is_open_source: bool
    is_in_yc: bool

# Define the JSON configuration and set it to llm extraction mode
json_config = JsonConfig(
    extractionSchema=ExtractSchema.model_json_schema(),
    mode="llm-extraction",
    pageOptions={"onlyMainContent": True}
)

# Scrape the URL, extract data, and format it into JSON
llm_extraction_result = app.scrape_url(
    'https://firecrawl.dev',
    formats=["json"],
    json_options=json_config
)
print(llm_extraction_result)

Berikut jenis scraping URL tunggal lainnya, kali ini dengan ekstraksi berbasis selektor:

# Get a screenshot of the top of the overview page
scrape_result = app.scrape_url('firecrawl.dev', 
    formats=['markdown', 'html', "screenshot"], 
    actions=[
        {"type": "wait", "milliseconds": 3000},
        {"type": "click", "selector": "h1"},
        {"type": "wait", "milliseconds": 3000},
        {"type": "scrape"},
        {"type": "screenshot"}
    ],
)
print(scrape_result)

Skrip ini pertama membuka situs, lalu menunggu 3000 milidetik, mengeklik selektor h1 pertama, menunggu lagi, kemudian melakukan scraping dan menyimpan tangkapan layar halaman saat ini. Jika Anda mendapatkan galat timeout, cobalah meningkatkan waktu tunggu bersamaan dengan parameter timeout.

Mode crawl

Mode crawl memungkinkan Anda merayapi seluruh situs web, termasuk semua subhalaman yang dapat diakses, tanpa memerlukan sitemap. Mode ini mengembalikan ID pekerjaan untuk melacak progres dan mendukung pengambilan metadata saat Anda ingin mengambil info tambahan seperti header dan stempel waktu, kontrol laju untuk mengatur seberapa cepat Anda mengakses situs, serta pengaturan kedalaman rekursif untuk menentukan berapa banyak level tautan yang diikuti. Langkah-langkah perayap adalah sebagai berikut:

  1. Pertama, perayap membuka URL yang diberikan
  2. Melakukan scraping
  3. Semua hyperlink yang menaut ke subhalaman dipindai dan diberi perayap terpisah
  4. Langkah-langkah diulang hingga batas maksimum yang ditentukan tercapai.

Berikut contoh perayap menggunakan Python requests:

import requests

url = "https://api.firecrawl.dev/v1/crawl" 
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}
data = {
    "url": "https://docs.firecrawl.dev", 	# site to crawl
    "limit": 100, 		# max items
    "scrapeOptions": {
        "formats": ["markdown", "html"]  	# output formats
    }
}

response = requests.post(url, headers=headers, json=data)

print(response.status_code)
print(response.json())

Kode ini memberi tahu Firecrawl untuk mengambil hingga 100 halaman dari https://docs.firecrawl.dev, mengembalikan setiap halaman dalam format Markdown dan HTML, lalu mencetak hasilnya.

Jika Anda ingin mempelajari lebih lanjut tentang API, lihat kursus Introduction to APIs in Python, code-along Working with APIs in Python, dan tutorial Mastering Python APIs: A Comprehensive Guide to Building and Using APIs in Python kami.

Mode map

Map memungkinkan Anda memasukkan sebuah situs web dan langsung mengambil setiap URL di situs tersebut dengan sangat cepat. Itulah alasan kami membuat /map: Mode ini mengubah satu URL menjadi peta situs yang komprehensif, ideal saat Anda perlu meminta pengguna akhir untuk memilih tautan yang akan di-scrape, dengan cepat menemukan semua URL situs, memfokuskan pada halaman terkait topik tertentu menggunakan parameter pencarian, atau membatasi perayapan ke halaman tertentu.

Pertimbangan: Karena endpoint ini memprioritaskan kecepatan, mungkin tidak menangkap setiap tautan.

# Map a website:
map_result = app.map_url('https://firecrawl.dev')
print(map_result)

Kode ini memberi tahu Firecrawl untuk menemukan semua tautan di halaman https://firecrawl.dev dan menampilkannya kepada Anda.

Aplikasi Dunia Nyata Firecrawl

Firecrawl adalah alat serbaguna untuk berbagai tugas, seperti telah kita lihat sebelumnya, yang membuatnya sangat berguna dalam skenario nyata. Firecrawl sangat aplikatif saat melakukan scraping papan lowongan atau situs berita untuk menyusun daftar atau artikel terkini guna dianalisis, atau untuk melatih model machine learning peramalan Anda. Anda juga dapat melakukan analisis sentimen melalui ulasan yang di-scrape, seperti mengumpulkan ulasan pelanggan dari e-commerce atau situs ulasan seperti Amazon, untuk menganalisis sentimen dan mendukung pengambilan keputusan bisnis.

Hal ini dapat ditingkatkan lagi dengan pemantauan harga, seperti melacak harga produk di berbagai platform untuk mengidentifikasi tren atau memicu peringatan penurunan harga. Selain itu, Anda dapat menggunakan Firecrawl untuk mengekstrak dokumentasi teknis guna melatih atau memberi informasi bagi agen AI, sehingga meningkatkan basis pengetahuan mereka, atau melakukan ingestion data ke pipeline AI multi-agen, seperti yang dilakukan CAMEL-AI.

Firecrawl juga dapat menyediakan data web terstruktur bagi sistem retrieval-augmented generation (RAG) untuk meningkatkan performa model dan menurunkan tingkat halusinasi.

Teknik Lanjutan dan Praktik Terbaik

Untuk memaksimalkan potensi Firecrawl, berikut beberapa teknik lanjutan dan praktik terbaik:

  • Ekstrak data terstruktur untuk LLM Anda dengan menggunakan endpoint /extract untuk mengembalikan data terstruktur berdasarkan prompt atau skema, karena LLM lebih baik menangani jenis data ini daripada HTML mentah.

  • Tangani galat dengan retry dengan menerapkan logika retry dengan exponential backoff untuk menangani galat API yang bersifat sementara.

  • Optimalkan kinerja dengan menggunakan perayapan asinkron Firecrawl untuk memulai perayapan besar tanpa memblokir aplikasi Anda. Ini ideal untuk aplikasi web atau layanan.

  • Saring perayapan dengan parameter seperti max_depth atau exclude untuk membatasi perayapan ke subdomain atau tipe halaman tertentu. Ini membantu mengurangi data yang tidak diperlukan sesuai kebutuhan.

  • Gunakan alat Python untuk memvalidasi dan membersihkan data hasil perayapan, seperti menyeimbangkan, menghapus nilai null, dan lainnya. pandas, numpy, seaborn, dan lainnya sangat membantu untuk tugas-tugas tersebut. Jika Anda ingin mempelajari lebih lanjut tentang pembersihan data, pertimbangkan kursus kami Cleaning Data in Python.

Firecrawl vs. Alat Scraping Tradisional

Firecrawl memiliki banyak keunggulan yang menjadikannya salah satu pilihan terbaik dalam banyak kasus, dan membuatnya menonjol dibanding alat scraping tradisional seperti Scrapy, BeautifulSoup, dan Puppeteer. Firecrawl menangani konten yang dirender JavaScript dengan mudah, sementara alat seperti BeautifulSoup memerlukan alat tambahan seperti Selenium dan terkadang inspeksi manual. Firecrawl memiliki rotasi proxy bawaan dan menangani rate limit untuk mengurangi waktu penyiapan dibanding konfigurasi manual Scrapy, yang memakan waktu. Selain itu, kemampuan ekstraksi LLM Firecrawl menyediakan data terstruktur—fitur yang tidak ada di sebagian besar alat tradisional.

Namun, alat tradisional mungkin lebih disukai dalam kasus tertentu, misalnya saat Anda menginginkan eksekusi lokal, sehingga alat seperti BeautifulSoup dapat berjalan secara lokal tanpa ketergantungan API—menarik bagi pengguna yang menghindari layanan cloud. Kemudahan dan efisiensi implementasi terkadang datang dengan kompromi pada kustomisasi ekstrem, seperti bagaimana Scrapy menawarkan kontrol terperinci untuk pipeline scraping yang sangat dapat disesuaikan.

Integrasi dan Dukungan Ekosistem

Firecrawl terintegrasi dengan baik dengan banyak kerangka kerja LLM umum, dengan dukungan ekosistem yang kuat, yang meningkatkan kegunaannya dalam alur kerja AI. Anda dapat berintegrasi dengan LangChain menggunakan modul FirecrawlLoader, yang memudahkan integrasi data web ke pipeline LangChain. Atau, Anda dapat menggunakannya dengan LlamaIndex karena FirecrawlReader mendukung pemuatan data web untuk pengindeksan dan kueri. Firecrawl juga merupakan alat bawaan untuk merayapi situs web dalam kerangka CrewAI dan mendukung banyak kerangka kerja lain seperti Flowise, Dify, dan CAMEL-AI dengan kompatibilitas luas.

Paket Harga dan Batas Penggunaan

Firecrawl menawarkan berbagai paket harga bergantung pada use case untuk memenuhi beragam kebutuhan. Pastikan untuk merujuk ke halaman harga resmi Firecrawl jika ada perubahan.

  • Tingkat Gratis: Mencakup sejumlah kredit terbatas dan cocok untuk pengujian serta proyek kecil.
  • Tingkat Hobi: Menawarkan lebih banyak kredit untuk individu atau tim kecil dengan biaya rendah.
  • Tingkat Standar, Growth, Enterprise: Menyediakan kredit yang meningkat, batas laju lebih tinggi, dan fitur lanjutan seperti permintaan kustom per menit (RPM).

Sistem kredit bekerja sebagai berikut:

Paket

Kredit

Fitur

Terbaik Untuk

Gratis

Terbatas

Scraping dasar, pengujian

Pemula, proyek kecil

Hobi

Sedang

Lebih banyak kredit, fitur standar

Pengembang individu

Standar

Tinggi

Batas laju lebih tinggi, fitur lanjutan

Tim yang berkembang

Growth

Sangat Tinggi

Dapat diskalakan, opsi kustom

Proyek besar

Enterprise

Tidak terbatas

RPM kustom, dukungan khusus

Volume tinggi, penggunaan enterprise

Kesimpulan

Firecrawl mengubah permainan untuk ekstraksi data web, khususnya untuk aplikasi AI. Dengan mengonversi situs web menjadi data yang bersih, terstruktur, dan siap LLM, Firecrawl membantu pengembang membangun solusi yang lebih cerdas. Kemudahan penggunaan, kumpulan fitur yang kaya, dan integrasi yang luas menjadikannya pilihan utama untuk tugas mulai dari pemantauan harga hingga alur kerja RAG.

Saya mendorong Anda untuk mencoba tingkat gratis Firecrawl guna menguji kemampuannya. Tetap terlibat dengan komunitas di GitHub dan Discord Firecrawl untuk pembaruan, kiat, dan dukungan.

Dengan Firecrawl, data web bukan lagi tantangan. Ini adalah aset kuat bagi inovasi AI Anda.

Sebagai langkah berikutnya, saya merekomendasikan kursus dan code-along berikut:

Iheb Gafsi

Penulis

Iheb Gafsi

Saya mengembangkan sistem AI terakselerasi yang memungkinkan kecerdasan di edge dengan pipeline ML federasi pada data terdesentralisasi dan beban kerja terdistribusi.  Fokus kerja saya mencakup Model Besar, Pemrosesan Ucapan, Vision Komputer, Reinforcement Learning, dan Topologi ML tingkat lanjut.

FAQs

Mengapa saya mendapatkan galat timeout?

Pertama, pastikan Anda menggunakan kunci API dengan benar, lalu debug apakah situs web berhasil menemukan bagian yang Anda scraping.

Apakah Firecrawl hanya menggunakan pencarian bertenaga AI?

Tidak, Anda dapat menggunakan berbagai jenis pencarian, seperti pencarian berbasis selektor dan berbasis LLM.

Bisakah Firecrawl menangani situs web dengan konten JavaScript berat?

Ya, Firecrawl dioptimalkan bahkan untuk situs web dinamis dengan konten JavaScript berat.

Kapan saya mungkin memilih alat tradisional seperti BeautifulSoup daripada FireCrawl?

BeautifulSoup bersifat lokal, gratis, dan menangani scraping HTML sederhana.

Bisakah saya mencoba Firecrawl secara gratis?

Ya, Anda memiliki permintaan per menit terbatas sebagai penguji.

Topik

Terkait

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

blogs

Spaghetti Plot dan Jalur Badai