번역 자료 / / 2025. 5. 20. 20:17

Firecrawl: 웹사이트를 LLM-ready 데이터로 변환하는 혁신적 웹 크롤러

개요

Firecrawl은 웹사이트의 모든 페이지를 크롤링하여 마크다운, HTML, 구조화 데이터 등 다양한 포맷으로 변환해주는 오픈소스 웹 크롤러이자 스크래퍼입니다. AI, 데이터 분석, 검색, 챗봇 등 다양한 분야에서 활용할 수 있으며, 복잡한 웹사이트도 손쉽게 LLM(대형언어모델) 학습에 적합한 데이터로 변환할 수 있습니다. 본 글에서는 Firecrawl의 주요 특징, 사용법, 실전 예제, 그리고 활용 팁을 정리합니다.

목차

  • Firecrawl이란?
  • 주요 기능 및 특징
  • 설치 및 시작하기
  • 실전 사용 예제 (Python)
  • 고급 활용법 및 팁
  • 활용 사례
  • 마크다운 표로 보는 주요 옵션
  • 참고 및 공식 문서

Firecrawl이란?

Firecrawl은 웹사이트의 모든 접근 가능한 하위 페이지를 자동으로 탐색(crawl)하고, 각 페이지의 콘텐츠를 마크다운, HTML, 구조화 데이터 등으로 변환해주는 API 기반의 크롤러입니다. 별도의 사이트맵 없이도 동적 콘텐츠, 자바스크립트 렌더링 페이지까지 지원하며, LLM 학습, 검색엔진, 데이터 분석 등 다양한 목적에 활용할 수 있습니다.

주요 기능 및 특징

  • 마크다운/HTML/스크린샷/링크/메타데이터 등 다양한 포맷 지원
  • 동적 콘텐츠 및 자바스크립트 렌더링 페이지 지원
  • 사이트맵 없이도 모든 하위 페이지 자동 탐색
  • API/SDK(Python, Node, Go, Rust) 제공
  • 비동기 크롤링 및 대규모 데이터 수집 지원
  • 크롤링 범위, 포맷, 태그, 경로 등 세밀한 옵션 제공
  • LangChain, LlamaIndex 등 AI 프레임워크와 통합
  • 오픈소스 및 클라우드 서비스 동시 제공

설치 및 시작하기

Python SDK 설치

pip install firecrawl-py

API 키 발급

기본 사용 예제

from firecrawl import FirecrawlApp

app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
result = app.scrape_url('https://docs.firecrawl.dev/introduction', formats=['markdown', 'html'])
print(result['data']['markdown'])

실전 사용 예제: 전체 사이트 크롤링

아래는 특정 사이트의 모든 하위 페이지를 크롤링하여 마크다운으로 저장하는 예제입니다.

from firecrawl import FirecrawlApp

app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
crawl_result = app.crawl_url(
    'https://docs.firecrawl.dev/introduction',
    limit=10,  # 최대 10페이지 크롤링
    scrape_options={"formats": ["markdown", "html"]}
)
for page in crawl_result['data']:
    print(page['metadata']['url'])
    print(page['markdown'][:300])  # 각 페이지의 마크다운 일부 출력

고급 활용법 및 팁

  • 비동기 크롤링: 대규모 사이트는 async_crawl_url, check_crawl_status로 효율적으로 처리
  • 포맷 옵션: markdown, html, links, screenshot 등 동시 요청 가능
  • 크롤링 범위 제한: includePaths, excludePaths, maxDepth, limit 등으로 세밀하게 제어
  • 특정 태그만 추출: includeTags, excludeTags 옵션 활용
  • AI 파이프라인 연동: LangChain, LlamaIndex 등과 통합해 RAG, 챗봇, 검색엔진 구축

활용 사례

  • AI 챗봇/검색엔진: 문서 전체를 마크다운으로 변환해 RAG 파이프라인 구축
  • 데이터 분석/아카이빙: 대규모 웹사이트의 구조화 데이터 수집
  • 변화 감지/모니터링: 웹페이지 변경사항 추적 및 알림 시스템
  • 자동화된 문서화: 기술문서, API 문서 등 자동 수집 및 변환

주요 옵션 요약 (표)

옵션명 설명 예시 값
formats 추출 포맷 지정 ["markdown", "html"]
limit 최대 크롤링 페이지 수 10
maxDepth 최대 탐색 깊이 2
includePaths 포함할 경로 패턴 ["/docs/*"]
excludePaths 제외할 경로 패턴 ["/blog/*"]
onlyMainContent 본문만 추출 여부 True
includeTags 포함할 HTML 태그/클래스/ID ["code", "#main"]
excludeTags 제외할 HTML 태그/클래스/ID ["nav", ".footer"]
allowExternalLinks 외부 링크 크롤링 허용 여부 False

참고 및 공식 문서

본 포스트는 Firecrawl 공식 문서 및 블로그, SourceForge, PraisonAI Docs 등 다양한 공식 자료를 참고하여 작성되었습니다.

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유