mendableai/firecrawlView GitHub Homepage for Latest Official Releases
将整个网站转换为LLM就绪的Markdown或结构化数据,通过单个API进行抓取、爬取和提取
AGPL-3.0TypeScriptfirecrawlmendableai 45.5k Last Updated: August 07, 2025
Firecrawl 项目详细介绍
项目概述
Firecrawl 是一个API服务,接收URL,爬取它,并将其转换为干净的markdown或结构化数据。它爬取所有可访问的子页面,为每个页面提供干净的数据。无需站点地图。
核心功能
1. 网页抓取 (Scraping)
- 抓取单个URL并获取LLM就绪格式的内容
- 支持多种输出格式:markdown、结构化数据、截图、HTML
- 通过LLM提取获得结构化数据
2. 网站爬取 (Crawling)
- 爬取网页的所有URL并返回LLM就绪格式的内容
- 无需站点地图即可发现所有可访问的子页面
- 支持自定义爬取深度和排除规则
3. 网站映射 (Map)
- 输入网站获取所有网站URL - 极快的速度
- 支持搜索特定URL模式
4. 网络搜索 (Search)
- 搜索网络并从结果中获取完整内容
- 可自定义搜索参数(语言、国家等)
- 可选择从搜索结果中检索各种格式的内容
5. 数据提取 (Extract)
- 使用AI从单页面、多页面或整个网站获取结构化数据
- 支持通过提示词和JSON模式定义提取规则
- 支持通配符URL模式
6. 批量处理 (Batching)
- 同时抓取数千个URL的新异步端点
- 提交批量抓取作业并返回作业ID检查状态
技术特性
LLM就绪格式
- Markdown: 干净的文档格式
- 结构化数据: JSON格式的提取数据
- 截图: 页面视觉捕获
- HTML: 原始HTML内容
- 链接和元数据: 页面信息提取
处理复杂情况
- 代理和反机器人机制: 绕过访问限制
- 动态内容: 处理JavaScript渲染的内容
- 输出解析: 智能内容解析
- 编排: 复杂流程管理
自定义能力
- 排除标签: 过滤不需要的内容
- 认证爬取: 使用自定义标头爬取需要认证的内容
- 最大爬取深度: 控制爬取范围
- 媒体解析: 支持PDF、DOCX、图像
交互功能 (Actions)
在抓取内容之前可以执行各种操作:
- 点击: 点击页面元素
- 滚动: 页面滚动操作
- 输入: 文本输入
- 等待: 等待页面加载
- 按键: 键盘操作
API使用示例
爬取网站
curl -X POST https://api.firecrawl.dev/v1/crawl \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-d '{
"url": "https://docs.firecrawl.dev",
"limit": 10,
"scrapeOptions": {
"formats": ["markdown", "html"]
}
}'
抓取单页面
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"url": "https://docs.firecrawl.dev",
"formats" : ["markdown", "html"]
}'
结构化数据提取
curl -X POST https://api.firecrawl.dev/v1/scrape \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer YOUR_API_KEY' \
-d '{
"url": "https://www.mendable.ai/",
"formats": ["json"],
"jsonOptions": {
"schema": {
"type": "object",
"properties": {
"company_mission": {"type": "string"},
"supports_sso": {"type": "boolean"},
"is_open_source": {"type": "boolean"},
"is_in_yc": {"type": "boolean"}
},
"required": ["company_mission", "supports_sso", "is_open_source", "is_in_yc"]
}
}
}'
SDK支持
Python SDK
pip install firecrawl-py
from firecrawl.firecrawl import FirecrawlApp
from firecrawl.firecrawl import ScrapeOptions
app = FirecrawlApp(api_key="fc-YOUR_API_KEY")
# 抓取网站
scrape_status = app.scrape_url(
'https://firecrawl.dev',
formats=["markdown", "html"]
)
print(scrape_status)
# 爬取网站
crawl_status = app.crawl_url(
'https://firecrawl.dev',
limit=100,
scrape_options=ScrapeOptions(formats=["markdown", "html"]),
poll_interval=30
)
print(crawl_status)
Node.js SDK
npm install @mendable/firecrawl-js
import FirecrawlApp, { CrawlParams, CrawlStatusResponse } from '@mendable/firecrawl-js';
const app = new FirecrawlApp({apiKey: "fc-YOUR_API_KEY"});
// 抓取网站
const scrapeResponse = await app.scrapeUrl('https://firecrawl.dev', {
formats: ['markdown', 'html'],
});
if (scrapeResponse) {
console.log(scrapeResponse)
}
// 爬取网站
const crawlResponse = await app.crawlUrl('https://firecrawl.dev', {
limit: 100,
scrapeOptions: {
formats: ['markdown', 'html'],
}
} satisfies CrawlParams, true, 30) satisfies CrawlStatusResponse;
集成支持
LLM框架集成
- Langchain: Python和JavaScript版本
- Llama Index: 数据连接器
- Crew.ai: AI代理框架
- Composio: 工具集成
- PraisonAI: AI编排
- Superinterface: 助手功能
- Vectorize: 向量化集成
低代码框架
- Dify: AI应用构建平台
- Langflow: 可视化AI流程
- Flowise AI: 无代码AI构建
- Cargo: 数据集成
- Pipedream: 工作流自动化
其他集成
- Zapier: 自动化工作流
- Pabbly Connect: 应用集成
许可证和部署
开源许可
- 主要采用 GNU Affero General Public License v3.0 (AGPL-3.0)
- SDK和部分UI组件采用MIT许可证
托管服务
- 提供托管版本在 firecrawl.dev
- 云解决方案提供额外功能和企业级支持
自托管
- 支持本地部署
- 当前仍在开发中,集成自定义模块到单体仓库
- 可以本地运行,但尚未完全准备好用于自托管部署
应用场景
- AI数据准备: 为LLM提供干净的训练数据
- 内容聚合: 从多个网站收集和整理内容
- 竞争分析: 监控竞争对手网站变化
- SEO研究: 分析网站结构和内容
- 数据挖掘: 从网站提取结构化信息
- 文档生成: 将网站内容转换为文档格式
使用注意事项
用户在使用Firecrawl进行抓取、搜索和爬取时,有责任遵守网站的政策。建议用户在启动任何抓取活动之前,遵守适用网站的隐私政策和使用条款。默认情况下,Firecrawl在爬取时会遵守网站robots.txt文件中指定的指令。
项目状态
该项目目前处于活跃开发状态,团队正在将自定义模块集成到单体仓库中。虽然尚未完全准备好进行自托管部署,但可以本地运行进行开发和测试。项目拥有活跃的社区和持续的更新,是网页数据提取领域的领先解决方案。