반응형
웹페이지 크롤링, 콘텐츠 추출, 구조화 데이터 분석까지
Firecrawl 하나로 끝내는 웹 자동화 도구 가이드
🔧 Firecrawl란?
Firecrawl은 웹 데이터를 효율적으로 수집하고 가공하는 데 특화된 AI 기반 도구입니다. 단순한 크롤링뿐 아니라, LLM을 활용한 구조화 정보 추출, 검색 기반 콘텐츠 요약, 심층 리서치까지 가능합니다.
🛠️ 주요 기능 한눈에 보기
도구 이름 | 주요 기능 | 추천 사용 시점 | 주의 사항 | 사용 예시 |
---|---|---|---|---|
firecrawl_scrape | 특정 URL의 콘텐츠 추출 (Markdown, HTML 등) | 단일 페이지 대상 | 여러 URL 대상일 땐 batch_scrape 사용 |
{"url": "https://example.com", "formats": ["markdown"]} |
firecrawl_map | 웹사이트의 전체 URL 구조 수집 | URL 구조 파악이 필요할 때 | 내용은 추출하지 않음 (크롤링 아님) | {"url": "https://example.com"} |
firecrawl_crawl | 여러 페이지 크롤링 + 콘텐츠 추출 | 전체 사이트 또는 블로그 전수 수집 시 | 너무 많은 페이지 요청 시 토큰 초과 가능 | {"url": "https://example.com/blog/*", "maxDepth": 2} |
firecrawl_check_crawl_status | 비동기 크롤링 상태 확인 | crawl 실행 이후 진행 상황 모니터링 |
id 는 crawl 결과로 받은 값 사용 |
{"id": "550e8400-e29b-41d4-a716-446655440000"} |
firecrawl_search | 키워드 기반 검색 + 선택적 콘텐츠 요약 | 어떤 사이트에 있는지 모를 때 | 특정 URL이 있다면 scrape , crawl 사용 권장 |
{"query": "latest AI research", "limit": 5} |
firecrawl_extract | LLM 기반 구조화 데이터 추출 | 이름, 가격 등 특정 필드만 필요할 때 | 전체 내용 추출은 scrape 사용 |
{"urls": ["url1"], "prompt": "Extract name and price", "schema": {...}} |
firecrawl_deep_research | 지능형 웹 검색 + 다중 사이트 분석 + LLM 요약 | 복잡한 리서치/주제 분석 | 빠른 결과가 필요하면 비추천 | {"query": "EV vs gasoline impact", "maxDepth": 3} |
firecrawl_generate_llmstxt | AI 모델 대상 크롤링 정책 파일 생성 (llms.txt) | 사이트의 AI 접근 정책 설정 시 | 콘텐츠 추출과는 관련 없음 | {"url": "https://example.com", "showFullText": true} |
✅ 언제 어떤 도구를 써야 할까?
목적 | 추천 도구 |
---|---|
단일 페이지 콘텐츠 수집 | firecrawl_scrape |
사이트 전체 URL 구조 확인 | firecrawl_map |
여러 페이지 자동 수집 및 추출 | firecrawl_crawl |
페이지 상태 확인 | firecrawl_check_crawl_status |
키워드 기반 뉴스/자료 수집 | firecrawl_search |
제품정보 등 구조화 데이터 추출 | firecrawl_extract |
복잡한 리서치/다중 출처 분석 | firecrawl_deep_research |
AI 모델 접근 정책 정의 | firecrawl_generate_llmstxt |
🔧 Firecrawl 도구별 주요 파라미터 정리
1. firecrawl_scrape
단일 URL의 콘텐츠를 추출할 때 사용
"name": "firecrawl_scrape"
파라미터 | 설명 | 필수값 |
url | 스크래핑 대상 페이지 URL | ✅ |
formats | 추출 포맷 (markdown, html 등) | ❌ (markdown 기본값) |
onlyMainContent | 본문만 추출 (nav/footer 제거) | ❌ |
includeTags, excludeTags | 포함/제외할 HTML 태그 리스트 | ❌ |
waitFor | 동적 콘텐츠 로딩 대기 시간(ms) | ❌ |
timeout | 최대 대기 시간(ms) | ❌ |
mobile | 모바일 뷰포트 사용 여부 | ❌ |
removeBase64Images | base64 이미지 제거 여부 | ❌ |
2. firecrawl_map
사이트의 모든 URL 목록 수집
"name": "firecrawl_map"
url | 시작 URL | ✅ |
search | 특정 키워드가 포함된 URL만 필터링 | ❌ |
ignoreSitemap | sitemap.xml 무시 | ❌ |
sitemapOnly | HTML 링크 무시, sitemap만 사용 | ❌ |
includeSubdomains | 서브도메인 포함 여부 | ❌ |
limit | 최대 수집 URL 개수 | ❌ |
3. firecrawl_crawl
전체 사이트 다중 페이지 콘텐츠 크롤링
"name": "firecrawl_crawl"
"name": "firecrawl_crawl"
url | 시작 URL 또는 경로 (https://site.com/blog/*) | ✅ |
maxDepth | 링크 깊이 제한 | ❌ |
limit | 최대 페이지 수 제한 | ❌ |
excludePaths, includePaths | 제외/포함할 경로 | ❌ |
allowExternalLinks | 외부 링크 포함 여부 | ❌ |
deduplicateSimilarURLs | 유사 URL 중복 제거 | ❌ |
ignoreQueryParameters | URL 비교 시 파라미터 무시 여부 | ❌ |
scrapeOptions | 각 페이지에 대한 스크래핑 설정 | ❌ |
4. firecrawl_check_crawl_status
비동기 크롤링의 상태 확인
"name": "firecrawl_check_crawl_status"
id | 크롤링 작업 ID | ✅ |
5. firecrawl_search
웹 전체에서 키워드 기반 검색 및 추출
"name": "firecrawl_search"
"name": "firecrawl_search"
query | 검색어 | ✅ |
limit | 결과 수 제한 (기본: 5) | ❌ |
lang | 언어 코드 (en, ko 등) | ❌ |
country | 국가 코드 (us, kr 등) | ❌ |
tbs | 시간 기반 필터 (qdr:d 등) | ❌ |
filter | 검색 필터 | ❌ |
scrapeOptions | 콘텐츠 추출 설정 (formats, onlyMainContent 등) | ❌ |
더보기
firecrawl_search "query" Operators


🔎 주요 지원 연산자 요약 (Firecrawl Search용)
Operator | 기능 설명 | 예시 |
site: | 특정 사이트 도메인 내에서만 검색 | site:finance.yahoo.com |
inurl: | URL 경로에 특정 단어가 포함된 결과만 검색 | inurl:news |
allinurl: | URL에 여러 단어가 포함된 결과만 검색 | allinurl:quote tsla |
intitle: | 페이지 제목에 단어가 포함된 결과 | intitle:Tesla |
related: | 특정 도메인과 관련된 결과만 검색 | related:finance.yahoo.com |
✅ 그래서 원하는 "뉴스 기사만 가져오기" 설정은
{
"query": "{{ $json.best_keyword }} site:finance.yahoo.com inurl:news",
"limit": 5
}
✅ 이 조합은:
- finance.yahoo.com 내에서
- URL에 news가 포함된 페이지만
- TSLA 같은 best_keyword와 연관된 결과를 검색합니다.
💡 팁: 종목 코드가 아닌 전체 검색어를 쓰고 싶다면?
{
"query": "{{ $json.best_keyword }} earnings site:finance.yahoo.com inurl:news",
"limit": 3
}
이렇게 하면 "TSLA 실적" 관련 뉴스만 추려낼 수 있어요.
6. firecrawl_extract
LLM을 활용한 구조화 정보 추출
"name": "firecrawl_extract"
urls | 대상 URL 목록 (배열) | ✅ |
prompt | 사용자 지정 추출 프롬프트 | ✅ |
systemPrompt | 시스템용 가이드 프롬프트 | ❌ |
schema | 추출할 JSON 스키마 | ✅ or prompt |
allowExternalLinks | 외부 링크 허용 여부 | ❌ |
enableWebSearch | 추가 웹 탐색 허용 여부 | ❌ |
includeSubdomains | 서브도메인 포함 여부 | ❌ |
7. firecrawl_deep_research
다중 소스 기반 심층 분석/리서치 수행
"name": "firecrawl_deep_research"
"name": "firecrawl_deep_research"
query | 리서치 주제 | ✅ |
maxDepth | 크롤/탐색 반복 깊이 (기본: 3) | ❌ |
timeLimit | 전체 분석 시간 제한 (초) | ❌ |
maxUrls | 최대 탐색 URL 수 | ❌ |
8. firecrawl_generate_llmstxt
AI 접근 허용 설정파일(llms.txt) 자동 생성
"name": "firecrawl_generate_llmstxt"
url | 대상 사이트 루트 URL | ✅ |
maxUrls | 포함할 최대 URL 수 (기본: 10) | ❌ |
showFullText | llms-full.txt도 포함할지 여부 | ❌ |
반응형
'IT 개인학습 > Memo' 카테고리의 다른 글
🔍 왜 직접 접근(크롤링)이 아닌 API/서비스를 쓰는가? (0) | 2025.05.29 |
---|---|
뭐가 이렇게 인증 절차가 많은걸까?🥴 (1) | 2025.05.22 |
리눅스 터미널 - nano (0) | 2025.05.21 |
💻 컴퓨터 재부팅 시 자동으로 ngrok 실행하기 (PM2 + 작업 스케줄러 활용) (0) | 2025.05.09 |
💡 Node.js와 PM2로 ngrok을 상시 실행하는 방법 (0) | 2025.05.09 |
댓글