모든 웹사이트의 깨끗한 데이터로 AI 앱의 역량을 강화하세요. 고급 스크래핑, 크롤링 및 데이터 추출 기능을 갖추고 있습니다.
이 저장소는 개발 중이며 여전히 사용자 정의 모듈을 모노 저장소에 통합하고 있습니다. 아직 자체 호스팅 배포가 완전히 준비되지 않았지만 로컬에서 실행할 수 있습니다.
Firecrawl은 URL을 가져와 크롤링하고 이를 깔끔한 마크다운 또는 구조화된 데이터로 변환하는 API 서비스입니다. 우리는 접근 가능한 모든 하위 페이지를 크롤링하고 각각에 대한 깨끗한 데이터를 제공합니다. 사이트맵이 필요하지 않습니다. 우리의 문서를 확인해 보세요.
태평양 표준시 안녕하세요, 우리 스타게이저들과 함께 하세요 :)
우리는 호스팅 버전으로 사용하기 쉬운 API를 제공합니다. 여기서 플레이그라운드와 문서를 찾을 수 있습니다. 원하는 경우 백엔드를 자체 호스팅할 수도 있습니다.
시작하려면 다음 리소스를 확인하세요.
API : 문서
SDK : Python, Node, Go, Rust
LLM 프레임워크 : Langchain(python), Langchain(js), Llama Index, Crew.ai, Composio, PraisonAI, Superinterface, Vectorize
로우 코드 프레임워크 : Dify, Langflow, Flowise AI, Cargo, Pipedream
기타 : Zapier, Pabbly Connect
SDK 또는 통합을 원하시나요? 문제를 열어 알려주세요.
로컬로 실행하려면 여기 가이드를 참조하세요.
API를 사용하려면 Firecrawl에 가입하고 API 키를 받아야 합니다.
스크랩 : URL을 스크랩하고 해당 콘텐츠를 LLM 지원 형식(마크다운, LLM 추출을 통한 구조화된 데이터, 스크린샷, html)으로 가져옵니다.
크롤링 : 웹 페이지의 모든 URL을 스크랩하고 LLM 지원 형식으로 콘텐츠를 반환합니다.
지도 : 웹사이트를 입력하고 모든 웹사이트 URL을 가져옵니다. - 매우 빠릅니다.
LLM 지원 형식 : 마크다운, 구조화된 데이터, 스크린샷, HTML, 링크, 메타데이터
어려운 작업 : 프록시, 봇 방지 메커니즘, 동적 콘텐츠(js 렌더링), 출력 구문 분석, 오케스트레이션
사용자 정의 가능성 : 태그 제외, 사용자 정의 헤더를 사용하여 인증 벽 뒤 크롤링, 최대 크롤링 깊이 등...
미디어 구문 분석 : pdfs, docx, 이미지.
신뢰성 우선 : 아무리 어려운 데이터라도 필요한 데이터를 얻을 수 있도록 설계되었습니다.
작업 : 데이터 추출 전 클릭, 스크롤, 입력, 대기 등
일괄 처리(신규) : 새로운 비동기 엔드포인트를 사용하여 동시에 수천 개의 URL을 스크랩합니다.
Firecrawl의 모든 기능과 사용 방법은 설명서에서 확인할 수 있습니다.
URL과 액세스 가능한 모든 하위 페이지를 크롤링하는 데 사용됩니다. 크롤링 작업을 제출하고 작업 ID를 반환하여 크롤링 상태를 확인합니다.
컬 -X POST https://api.firecrawl.dev/v1/crawl -H '콘텐츠 유형: 애플리케이션/json' -H '권한 부여: 베어러 fc-YOUR_API_KEY' -d '{ "url": "https://docs.firecrawl.dev", "limit": 100, "scrapeOptions": { "formats": ["markdown", "html"] } }'
크롤링 작업 ID와 URL을 반환하여 크롤링 상태를 확인합니다.
{ "성공": true, "id": "123-456-789", "url": "https://api.firecrawl.dev/v1/crawl/123-456-789"}
크롤링 작업 상태를 확인하고 결과를 얻는 데 사용됩니다.
컬 -X GET https://api.firecrawl.dev/v1/crawl/123-456-789 -H '콘텐츠 유형: 애플리케이션/json' -H '권한 부여: YOUR_API_KEY 전달자'
{ "status": "완료됨", "total": 36, "creditsUsed": 36, "expiresAt": "2024-00-00T00:00:00.000Z", "data": [ { "markdown": "[Firecrawl 문서 홈 페이지![라이트 로고](https://mintlify.s3-us-west-1.amazonaws.com/firecrawl/logo/light.svg)!...", " html": ".. .", "metadata": {"title": "Groq Llama 3 | Firecrawl을 사용하여 '웹사이트와 채팅' 구축","언어": "en","sourceURL": "https://docs.firecrawl.dev /learn/rag-llama3","description": "Firecrawl, Groq Llama 3 및 Langchain을 사용하여 '웹 사이트와 채팅' 봇을 구축하는 방법을 알아보세요.","ogLocaleAlternate": [],"statusCode": 200 } } ] }
URL을 스크랩하고 해당 콘텐츠를 지정된 형식으로 가져오는 데 사용됩니다.
컬 -X POST https://api.firecrawl.dev/v1/scrape -H '콘텐츠 유형: 애플리케이션/json' -H '권한 부여: YOUR_API_KEY 전달자' -d '{ "url": "https://docs.firecrawl.dev", "formats" : ["markdown", "html"] }'
응답:
{ "success": true, "data": {"markdown": "Launch Week I이 시작되었습니다! [2일 차 릴리스 보기 ](https://www.firecrawl.dev/blog/launch-week-i-day -2배 요금 제한)[? 2개월 무료 이용...","html": "지도(알파)
URL을 매핑하고 웹사이트의 URL을 가져오는 데 사용됩니다. 그러면 웹사이트에 있는 대부분의 링크가 반환됩니다.
컬 -X POST https://api.firecrawl.dev/v1/map -H '콘텐츠 유형: 애플리케이션/json' -H '권한 부여: YOUR_API_KEY 전달자' -d '{ "url": "https://firecrawl.dev" }'응답:
{ "상태": "성공", "링크": ["https://firecrawl.dev","https://www.firecrawl.dev/pricing","https://www.firecrawl.dev/blog ","https://www.firecrawl.dev/playground","https://www.firecrawl.dev/smart-crawl", ] }검색이 가능한 지도
search
매개변수가 포함된 지도를 사용하면 웹사이트 내부의 특정 URL을 검색할 수 있습니다.컬 -X POST https://api.firecrawl.dev/v1/map -H '콘텐츠 유형: 애플리케이션/json' -H '권한 부여: YOUR_API_KEY 전달자' -d '{ "url": "https://firecrawl.dev", "search": "docs" }'응답은 관련성이 가장 높은 것부터 관련성이 가장 낮은 것 순으로 정렬됩니다.
{ "상태": "성공", "링크": ["https://docs.firecrawl.dev","https://docs.firecrawl.dev/sdks/python","https://docs.firecrawl .dev/learn/rag-llama3", ] }LLM 추출(베타)
스크랩된 페이지에서 구조화된 데이터를 추출하는 데 사용됩니다.
컬 -X POST https://api.firecrawl.dev/v1/scrape -H '콘텐츠 유형: 애플리케이션/json' -H '권한 부여: YOUR_API_KEY 전달자' -d '{ "url": "https://www.mendable.ai/", "formats": ["extract"], "extract": { "schema": { "type": "object", " Properties": { "company_mission": { "type": "string" }, "supports_sso": { "type": "boolean" }, "is_open_source": { "type": "boolean" }, "is_in_yc": { "유형": "부울" } }, "필수": [ "company_mission", "supports_sso", "is_open_source", "is_in_yc" ] } } }'{ "success": true, "data": {"content": "원시 콘텐츠","metadata": { "title": "Mendable", "description": "Mendable을 사용하면 AI 채팅 애플리케이션을 쉽게 구축할 수 있습니다. 수집 , 사용자 정의한 다음 원하는 위치에 한 줄의 코드로 배포하세요. ", "robots": "follow, index", "ogTitle": "Mendable", "ogDescription": "Mendable을 사용하면 쉽게 구축할 수 있습니다. AI 채팅 애플리케이션. SideGuide에서 한 줄의 코드를 사용하여 수집하고 사용자 정의한 후 배포할 수 있습니다.", "ogUrl": "https://mendable.ai/", "ogImage": "https:// mendable.ai/mendable_new_og1.png", "ogLocaleAlternate": [], "ogSiteName": "Mendable", "sourceURL": "https://mendable.ai/"},"llm_extraction": { "company_mission": " 고객 및 직원의 질문에 답변하는 기술 리소스에 대해 보안 AI를 교육하므로 팀에서는 그럴 필요가 없습니다.", "supports_sso": true, "is_open_source": false, "is_in_yc": true} } }스키마 없이 추출(신규)
이제 엔드포인트에
prompt
전달하기만 하면 스키마 없이 추출할 수 있습니다. LLM은 데이터의 구조를 선택합니다.컬 -X POST https://api.firecrawl.dev/v1/scrape -H '콘텐츠 유형: 애플리케이션/json' -H '권한 부여: YOUR_API_KEY 전달자' -d '{ "url": "https://docs.firecrawl.dev/", "formats": ["extract"], "extract": { "prompt": "페이지에서 회사 사명을 추출합니다." } }'작업을 사용하여 페이지와 상호 작용(클라우드 전용)
Firecrawl을 사용하면 콘텐츠를 스크랩하기 전에 웹 페이지에서 다양한 작업을 수행할 수 있습니다. 이는 동적 콘텐츠와 상호 작용하거나, 페이지를 탐색하거나, 사용자 상호 작용이 필요한 콘텐츠에 액세스하는 데 특히 유용합니다.
다음은 작업을 사용하여 google.com으로 이동하고, Firecrawl을 검색하고, 첫 번째 결과를 클릭하고, 스크린샷을 찍는 방법의 예입니다.
컬 -X POST https://api.firecrawl.dev/v1/scrape -H '콘텐츠 유형: 애플리케이션/json' -H '권한 부여: YOUR_API_KEY 전달자' -d '{ "url": "google.com", "formats": ["markdown"], "actions": [ {"type": "wait", "milliseconds": 2000}, {"type": "click", "selector": "textarea[title="Search"]"}, {"type": "wait", "milliseconds": 2000}, {"type": "write", "text": " firecrawl"}, {"type": "wait", "milliseconds": 2000}, {"type": "press", "key": "ENTER"}, {"type": "wait", "milliseconds" : 3000}, {"type": "click", "selector": "h3"}, {"type": "wait", "milliseconds": 3000}, {"type": "screenshot"} ] }'여러 URL 일괄 스크래핑(신규)
이제 동시에 여러 URL을 일괄적으로 스크랩할 수 있습니다. 이는 /crawl 엔드포인트의 작동 방식과 매우 유사합니다. 일괄 스크랩 작업을 제출하고 작업 ID를 반환하여 일괄 스크랩 상태를 확인합니다.
컬 -X POST https://api.firecrawl.dev/v1/batch/scrape -H '콘텐츠 유형: 애플리케이션/json' -H '권한 부여: YOUR_API_KEY 전달자' -d '{ "urls": ["https://docs.firecrawl.dev", "https://docs.firecrawl.dev/sdks/overview"], "formats" : ["markdown", "html" ] }'검색(v0)(베타)
웹을 검색하고, 가장 관련성이 높은 결과를 얻고, 각 페이지를 스크랩하고 마크다운을 반환하는 데 사용됩니다.
컬 -X POST https://api.firecrawl.dev/v0/search -H '콘텐츠 유형: 애플리케이션/json' -H '권한 부여: YOUR_API_KEY 전달자' -d '{ "query": "firecrawl", "pageOptions": { "fetchPageContent": true // 빠른 serp API의 경우 false } }'{ "성공": 참, "데이터": [ { "url": "https://mendable.ai", "markdown": "# Markdown Content", "provider": "web-scraper", "metadata": {"title": "Mendable | CX용 AI 및 판매","설명": "CX 및 판매용 AI","언어": null,"sourceURL": "https://www.mendable.ai/" } } ] }Python SDK 사용
Python SDK 설치
pip 설치 firecrawl-py웹사이트 크롤링
from firecrawl.firecrawl import FirecrawlAppapp = FirecrawlApp(api_key="fc-YOUR_API_KEY")# 웹사이트 스크랩:scrape_status = app.scrape_url( 'https://firecrawl.dev', params={'formats': ['markdown', 'html']} )print(scrape_status)# 웹사이트 크롤링:crawl_status = app.crawl_url( 'https://firecrawl.dev', params={'limit': 100, 'scrapeOptions': {'formats': ['markdown', 'html']} }, poll_interval=30)인쇄(crawl_status)URL에서 구조화된 데이터 추출
LLM 추출을 사용하면 모든 URL에서 구조화된 데이터를 쉽게 추출할 수 있습니다. 우리는 귀하도 쉽게 사용할 수 있도록 pydantic 스키마를 지원합니다. 사용 방법은 다음과 같습니다.
from firecrawl.firecrawl import FirecrawlAppapp = FirecrawlApp(api_key="fc-YOUR_API_KEY")class ArticleSchema(BaseModel):title: strpoints: intby: strcommentsURL: strclass TopArticlesSchema(BaseModel):top: List[ArticleSchema] = Field(..., max_items=5, Description="상위 5개 스토리")data = app.scrape_url('https://news.ycombinator.com', {'formats': ['extract'],'extract': {'schema': TopArticlesSchema.model_json_schema() } })인쇄(데이터["추출"])노드 SDK 사용
설치
Firecrawl Node SDK를 설치하려면 npm을 사용할 수 있습니다.
npm 설치 @mendable/firecrawl-js용법
firecrawl.dev에서 API 키 받기
API 키를
FIRECRAWL_API_KEY
라는 환경 변수로 설정하거나 이를FirecrawlApp
클래스에 매개변수로 전달합니다.import FirecrawlApp, { CrawlParams, CrawlStatusResponse } from '@mendable/firecrawl-js';const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});// 웹사이트 스크랩const scrapeResponse = wait app.scrapeUrl('https: //firecrawl.dev', { 형식: ['markdown', 'html'],});if (scrapeResponse) { console.log(scrapeResponse)}// 웹사이트 크롤링const creepResponse = wait app.crawlUrl('https://firecrawl.dev', { 한도: 100, scrapeOptions: {형식: ['markdown', 'html'], }} CrawlParams 만족, true, 30) CrawlStatusResponse 만족;if (crawlResponse) { console.log(crawlResponse)}URL에서 구조화된 데이터 추출
LLM 추출을 사용하면 모든 URL에서 구조화된 데이터를 쉽게 추출할 수 있습니다. 우리는 귀하도 쉽게 사용할 수 있도록 zod 스키마를 지원합니다. 사용 방법은 다음과 같습니다.
"@mendable/firecrawl-js"에서 FirecrawlApp 가져오기;"zod"에서 { z } 가져오기;const app = new FirecrawlApp({ apiKey: "fc-YOUR_API_KEY"});// 콘텐츠를 추출하기 위한 스키마 정의constschema = z.object({ 상단: z.array( z.object({제목: z.string(),포인트: z.number(),by: z.string(),commentsURL: z.string(), })).length(5 ).describe("해커 뉴스의 상위 5개 기사"),});const scrapeResult = wait app.scrapeUrl("https://news.ycombinator.com", { extractorOptions: { extractSchema: 스키마 },});console.log(scrapeResult.data["llm_extraction"]);오픈 소스와 클라우드 제공
Firecrawl은 AGPL-3.0 라이선스에 따라 사용 가능한 오픈 소스입니다.
가능한 최고의 제품을 제공하기 위해 우리는 오픈 소스 제품과 함께 Firecrawl의 호스팅 버전을 제공합니다. 클라우드 솔루션을 통해 우리는 모든 사용자를 위한 고품질의 지속 가능한 서비스를 지속적으로 혁신하고 유지할 수 있습니다.
Firecrawl Cloud는 firecrawl.dev에서 사용할 수 있으며 오픈 소스 버전에서는 사용할 수 없는 다양한 기능을 제공합니다.
기여
우리는 기여를 좋아합니다! 끌어오기 요청을 제출하기 전에 기여 가이드를 읽어보세요. 자체 호스팅을 원할 경우 자체 호스팅 가이드를 참조하세요.
Firecrawl을 사용하여 스크래핑, 검색, 크롤링할 때 웹사이트 정책을 준수하는 것은 최종 사용자의 전적인 책임입니다. 사용자는 스크래핑 활동을 시작하기 전에 웹사이트의 해당 개인 정보 보호 정책과 이용 약관을 준수하는 것이 좋습니다. 기본적으로 Firecrawl은 크롤링 시 웹사이트의 robots.txt 파일에 지정된 지시문을 따릅니다. Firecrawl을 활용함으로써 귀하는 이러한 조건을 준수할 것에 명시적으로 동의하게 됩니다.
기여자
라이선스 면책조항
이 프로젝트는 기본적으로 이 저장소의 루트 디렉터리에 있는 LICENSE 파일에 지정된 GNU Affero General Public License v3.0(AGPL-3.0)에 따라 라이선스가 부여됩니다. 그러나 이 프로젝트의 특정 구성 요소는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 특정 디렉터리에 있는 LICENSE 파일을 참조하세요.
참고:
AGPL-3.0 라이선스는 달리 명시되지 않는 한 프로젝트의 모든 부분에 적용됩니다.
SDK 및 일부 UI 구성 요소는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 특정 디렉터리에 있는 LICENSE 파일을 참조하세요.
이 프로젝트를 사용하거나 기여할 때 작업 중인 특정 구성 요소에 대한 적절한 라이센스 조건을 준수하는지 확인하십시오.
특정 구성 요소의 라이선스에 대한 자세한 내용은 해당 디렉터리의 LICENSE 파일을 참조하거나 프로젝트 관리자에게 문의하세요.
↑ 맨 위로 ↑