用 Firecrawl 把整个互联网变成 AI 的知识库
摘要训练好的大模型天生不了解今天——它的知识截止于训练数据而真实世界在不停更新。Firecrawl 是一个开源的网页数据 API专门解决这个缺口它能把任意 URL 转换成干净的 Markdown 或结构化 JSON让 AI 智能体实时获取互联网上的最新内容。无论是抓单页、爬整站还是按提示自主搜索一个 API 全部搞定。核心优势为什么选 Firecrawl而不是自己写爬虫自研爬虫的噩梦大家都懂JS 渲染失败、反爬封 IP、验证码墙、动态加载……Firecrawl 把这些难题全包了开发者只需要关心我想要什么数据。优势说明覆盖率 96%支持 JS 密集型页面不依赖简单 HTTP 请求速度极快百万页面 P95 延迟仅 3.4 秒适合实时场景AI 直用格式输出干净 Markdown / 结构化 JSON / 截图减少 token 浪费免运维轮换代理、限速处理、JS 渲染全自动零配置Agent 原生一条命令接入任何 MCP 客户端或 AI 智能体多格式解析支持网页托管的 PDF、DOCX 等文档交互能力可在抓取前执行点击、滚动、输入、等待等操作完全开源AGPL-3.0可自托管也可用 firecrawl.dev 云服务与竞品相比Firecrawl 官方基准测试显示其 web 覆盖率领先同类产品且输出质量经过专门为 LLM 管道优化无需二次清洗。面向人群最适合以下场景的开发者AI 应用开发者需要给智能体注入实时网页知识替代过时的训练数据数据工程师批量采集竞品价格、行业动态、学术信息等结构化数据RAG 系统构建者把整站内容导入向量数据库构建企业知识库自动化研究员让 AI 自主搜索和归纳特定主题无需手动查资料产品经理 / 独立开发者快速抓取竞品功能、定价页做对比分析不太适合的场景需要登录后才能访问的付费内容涉及法律与平台条款、以及对 robots.txt 有严格限制的站点。Firecrawl 默认遵守 robots.txt用户需自行确保合规。快速上手1. 获取 API Key在 firecrawl.dev 注册账号免费计划每月有足够的额度用于测试。2. 安装 SDK# Pythonpipinstallfirecrawl-py# Node.jsnpminstallfirecrawl3. 抓取单个页面最常见的用法——把任意 URL 转成 MarkdownfromfirecrawlimportFirecrawl appFirecrawl(api_keyfc-YOUR_API_KEY)# 抓取并输出 Markdownresultapp.scrape(https://example.com)print(result.markdown)import{Firecrawl}fromfirecrawl;constappnewFirecrawl({apiKey:fc-YOUR_API_KEY});constdocawaitapp.scrape(https://example.com,{formats:[markdown]});console.log(doc.markdown);4. 搜索网页并获取正文不只是搜索标题直接拿到每个结果页的完整内容resultsapp.search(2024年最佳 AI 编程工具,limit5)forrinresults:print(r[url])print(r[markdown][:500])# 截取前500字5. 爬取整站把整个文档站变成结构化数据集docsapp.crawl(https://docs.example.com,limit100)fordocindocs.data:print(doc.metadata.source_url)print(doc.markdown[:200])SDK 会自动轮询等待爬取完成无需手动处理异步任务。进阶用法Agent 模式告诉它我要什么它自己去找最强大的功能之一。不需要知道 URL直接描述需求fromfirecrawlimportFirecrawlfrompydanticimportBaseModel,FieldfromtypingimportList,Optional appFirecrawl(api_keyfc-YOUR_API_KEY)classCompetitor(BaseModel):name:strprice:Optional[str]Field(None,description月付价格)free_tier:boolField(description是否有免费计划)classCompetitorList(BaseModel):competitors:List[Competitor]# 让 Agent 自主搜索竞品定价resultapp.agent(prompt找出 Notion、Obsidian、Logseq 的定价方案和免费层信息,schemaCompetitorList)print(result.data)返回的是结构化数据直接可以入库或传给下游 LLM。交互式抓取先操作再提取对于需要交互才能展示内容的页面可以先模拟用户操作# 先抓取页面拿到 scrape_idresultapp.scrape(https://amazon.com)scrape_idresult.metadata.scrape_id# 模拟搜索操作app.interact(scrape_id,promptSearch for mechanical keyboard)app.interact(scrape_id,promptClick the first result)# 此时再 scrape 就能拿到点击后的页面内容接入 MCP 客户端一行配置如果你在用 Claude Code、Cursor 或其他 MCP 兼容工具只需一条命令安装npx-yfirecrawl-clilatest init--all--browser重启智能体后它就能直接调用 Firecrawl 的所有能力无需额外编码。或者在mcp_config.json中手动添加{mcpServers:{firecrawl-mcp:{command:npx,args:[-y,firecrawl-mcp],env:{FIRECRAWL_API_KEY:fc-YOUR_API_KEY}}}}批量抓取异步处理数千个 URLjobapp.batch_scrape([https://site1.com/page1,https://site2.com/page2,# ...可以放数千个 URL],formats[markdown])fordocinjob.data:print(doc.metadata.source_url,doc.markdown[:100])站点地图发现快速扫描一个网站有哪些 URL再决定抓哪些页面resultapp.map(https://firecrawl.dev,searchpricing)# 返回按pricing相关度排序的 URL 列表开源与自托管Firecrawl 核心代码以 AGPL-3.0 开源可以完全自托管在私有服务器上。云服务版本 (firecrawl.dev) 在开源基础上额外提供了更高的并发上限、企业级 SLA 和一些高级功能。对于数据隐私要求高的企业场景自托管版本是更好的选择对于个人项目和中小规模应用云服务的免费层已经足够使用。