ardifx01 Profile Photo
Muhammad Nadhif

ScrapeCraft by ScrapeGraphAI — Framework Berbasis Graf untuk Web Scraping Bertenaga AI

dhiff
dhiff
Edited 3:30 PM WIB, Fri October 17, 2025
ScrapeCraft by ScrapeGraphAI — Framework Berbasis Graf untuk Web Scraping Bertenaga AI

ScrapeCraft adalah framework open-source yang dikembangkan oleh ScrapeGraphAI untuk mengotomatisasi ekstraksi data dari web menggunakan pendekatan berbasis graf dan reasoning dari model bahasa besar (LLM). Framework ini membuat proses web scraping lebih dinamis, cerdas, dan tahan terhadap perubahan struktur HTML.

Konsep Dasar

Berbeda dari library seperti BeautifulSoup atau Scrapy yang bergantung pada selector statis, ScrapeCraft menggunakan node graf untuk mendeskripsikan alur scraping. Setiap node mewakili aksi tertentu — misalnya mengambil halaman (fetch), mengekstrak data (extract), atau melakukan transformasi (transform). Beberapa node menggunakan LLM agar bisa memahami konteks halaman web secara semantik.

Instalasi

pip install scrapecraft
git clone https://github.com/ScrapeGraphAI/scrapecraft.git
cd scrapecraft
pip install -e .

Mendefinisikan Workflow Scraping

{
  "nodes": [
    {
      "id": "fetch_homepage",
      "type": "FetchNode",
      "params": { "url": "https://example.com" }
    },
    {
      "id": "extract_links",
      "type": "LLMExtractNode",
      "params": {
        "prompt": "Extract all article URLs and titles",
        "llm": "gpt-4o-mini"
      },
      "input": ["fetch_homepage"]
    }
  ],
  "output": ["extract_links"]
}

Graf di atas mendefinisikan dua node: satu untuk mengambil halaman web dan satu lagi untuk mengekstrak URL artikel menggunakan LLM. Arsitektur berbasis graf ini membuat workflow mudah dibaca, diubah, dan digunakan ulang.

Menjalankan Workflow

from scrapecraft import GraphRunner

runner = GraphRunner("workflow.json")
result = runner.run()
print(result)

Saat dieksekusi, ScrapeCraft membaca file JSON workflow, menjalankan node sesuai urutan dependensi, dan menggunakan API LLM untuk mengekstrak data secara kontekstual.

Visualisasi Workflow

from scrapecraft.visualize import visualize_graph

visualize_graph("workflow.json")

Fitur ini memungkinkan pengembang melihat representasi graf dari seluruh pipeline scraping untuk debugging maupun dokumentasi.

Node Reasoning dengan LLM

from scrapecraft.nodes import LLMExtractNode

node = LLMExtractNode(
    prompt="Extract author names and publication dates",
    llm="gpt-4o-mini"
)

Node ini memakai LLM untuk memahami struktur HTML dan mengambil informasi spesifik seperti nama penulis atau tanggal publikasi. Keunggulannya adalah fleksibilitas terhadap perubahan struktur web.

Kelebihan dan Kekurangan

  • ✅ Adaptif terhadap perubahan struktur web — tidak bergantung pada selector statis.
  • ✅ Workflow modular dan dapat digunakan ulang.
  • ⚠️ Biaya tinggi jika sering memanggil API LLM.
  • ⚠️ Latensi lebih besar dibanding scraping tradisional.
  • ⚠️ Wajib mematuhi etika web scraping** (robots.txt, terms of use).

Kesimpulan

ScrapeCraft menghadirkan pendekatan baru dalam dunia web scraping: memanfaatkan LLM dan graf modular untuk memahami struktur web secara semantik. Dengan integrasi reasoning AI, framework ini membuka jalan menuju web scraping yang lebih cerdas, fleksibel, dan tahan lama terhadap perubahan struktur HTML.