智能体 · 中文选型解读

firecrawl

已解读GitHubAGPL-3.0TypeScript

Firecrawl是一款可规模化实现网页搜索、抓取、交互的开源API工具,可输出适配AI的结构化数据,满足AI智能体的网页数据调用需求。

178.2kstar今天仍有更新维护状态AGPL-3.0 · 注意开源义务商用提醒
在 GitHub 查看官方项目
适合解决让 AI 拆解任务、调用工具并完成多步骤流程
更适合希望自动化运营、调研、销售或内部流程的团队
投入判断上手门槛:需评估。需要明确流程边界,并持续评测结果
一分钟看懂

这个项目值得继续研究吗?

AI 依据上游资料解读 · 2026/9/4

Firecrawl是一款可规模化实现网页搜索、抓取、交互的开源API工具,可输出适配AI的结构化数据,满足AI智能体的网页数据调用需求。

解决什么问题
企业搭建AI应用、开展市场调研、竞品分析时,常遇到网页抓取成功率低、动态页面内容获取失败、数据格式杂乱无法直接复用,还要额外处理反爬、代理配置等问题,耗费大量人力。
适合什么团队
适合需要批量获取网页数据的AI应用团队、做市场/竞品调研的运营团队,以及需要为AI智能体接入实时网页数据的业务团队。
使用前注意
本项目采用AGPL-3.0开源许可证,若基于其修改后对外提供服务,需开源全部修改后的代码;项目当前处于活跃维护状态,也可选择官方托管的商用服务无需自行部署。

本页用于缩短初步筛选时间,不构成技术、采购或法律结论。 正式使用前请在真实业务数据上验证,并以官方说明与许可证为准。

项目导读

从官方资料看清能力、部署与采用边界

AI 翻译整理 · 保留官方来源

以下内容依据项目公开 README 或模型卡翻译整理,代码、命令和产品名保持原样。

项目定位

Firecrawl是专注于网页上下文处理的开源API工具,核心能力是规模化完成网页搜索、抓取、交互操作,可将网页内容转换为干净的Markdown格式或者结构化数据,直接供给AI智能体使用。项目同时提供开源版本和官方托管的商用服务,用户可按需选择。

核心能力

根据官方公布的数据,其网页抓取可覆盖96%的公开网页,包括依赖JS渲染的动态页面,P95延迟为3.4秒,适配实时AI应用的响应需求。 核心能力包括三类基础端点:

额外能力还包括:整站批量抓取、站点URL一键发现、PDF/DOCX等网页端媒体文件内容解析、自动处理代理切换、反爬绕过、速率限制适配等,用户无需额外做相关配置。

  1. 搜索:全网搜索指定关键词,直接返回搜索结果的全页内容
  2. 抓取:输入指定URL,输出Markdown、HTML、截图或者结构化JSON格式的数据
  3. 交互:抓取页面后,可通过自然语言指令模拟点击、搜索、滚动、输入等网页操作

典型使用场景

全网搜索获取内容

只需输入搜索关键词,即可获取对应搜索结果的完整页面内容,无需自行逐个打开链接抓取,支持自定义返回结果数量。

指定网页内容提取

输入任意网页URL,即可直接获得清理后的结构化数据,适配LLM(大语言模型,Large Language Model)调用需求,减少不必要的token消耗。

网页交互操作

可针对抓取的页面发送自然语言指令完成操作,比如在电商网站搜索指定商品、点击对应商品链接获取详情等,适合需要多步操作才能拿到数据的场景。

智能体自动获取数据

无需提供具体URL,仅需描述你需要的信息,项目自带的智能体即可自动完成搜索、导航、数据提取的全流程,还支持自定义Schema输出结构化数据,也可指定仅检索某些特定站点的内容。

AI智能体适配

Firecrawl可快速对接各类AI智能体和MCP兼容客户端:

  • 只需一行命令即可为Claude Code、OpenCode等智能体接入实时网页数据能力,安装后重启智能体即可使用
  • 针对MCP兼容的客户端,只需简单配置即可完成对接,无需额外开发
  • 智能体也可直接调用官方提供的onboarding脚本快速完成API密钥配置,直接接入能力。

使用方式

最快的上手方式是访问firecrawl.dev注册账号获取API密钥,官方提供了在线playground可直接测试功能。支持Python、Node.js、cURL、CLI四种调用方式,不同语言都有对应封装好的SDK,调用门槛低。 调用时可根据任务复杂度选择不同的推理努力等级:低等级适合单站点简单查询,中等级适合多页面多步骤任务,高等级适合深度调研场景。

许可证与采用建议

本项目采用AGPL-3.0许可证,若你仅内部使用或者调用官方托管的API,无许可证相关限制;若你基于项目源码二次开发后对外提供服务,则需要开源全部修改后的代码。 建议需要快速获取网页数据为AI应用提供数据源的团队优先使用,无需自行搭建维护爬虫基础设施,可节省大量开发和运维成本。

可核对的事实层

官方资料与来源

查看来源 →
  • ai
  • ai-agents
  • ai-crawler
  • ai-scraping
  • ai-search
  • crawler
  • data-extraction
  • html-to-markdown
  • llm
  • markdown
  • scraper
  • scraping
默认分支main
关注仓库454
复刻次数9.6k
开放议题585
近期更新2026/9/3
仓库状态未标记归档
上游部署线索
## Quick Start

Sign up at [firecrawl.dev](https://firecrawl.dev) to get your API key. Try the [playground](https://firecrawl.dev/playground) to test it out.

### Search

Search the web and get full content from results.

```python
from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR_API_KEY")

search_result = app.search("firecrawl", limit=5)
```

<details>
<summary><b>Node.js / cURL / CLI</b></summary>

**Node.js**
```javascript
import { Firecrawl } from 'firecrawl';

const app = new Firecrawl({apiKey: "fc-YOUR_API_KEY"});

app.search("firecrawl", { limit: 5 })
```

**cURL**
```bash
curl -X POST 'https://api.firecrawl.dev/v2/search' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
  "query": "firecrawl",
  "limit": 5
}'
```

**CLI**
```bash
firecrawl search "firecrawl" --limit 5
```
</details>

Output:
```json
[
  {
    "url": "http

该片段来自项目 README,仅用于初步判断;实际部署请以官方文档为准。

核对上游原始说明节选

The context API to search, scrape, and interact with the web at scale. 🔥

Why Firecrawl?

  • Industry-leading reliability: Covers 96% of the web, including JS-heavy pages — no proxy headaches, just clean data (see benchmarks)
  • Blazingly fast: P95 latency of 3.4s across millions of pages, built for real-time agents and dynamic apps
  • LLM-ready output: Clean markdown, structured JSON, screenshots, and more — spend fewer tokens, build better AI apps
  • We handle the hard stuff: Rotating proxies, orchestration, rate limits, JS-blocked content, and more — zero configuration
  • Agent ready: Connect Firecrawl to any AI agent or MCP client with a single command
  • Media parsing: Parse and extract content from web-hosted PDFs, DOCX, and more
  • Actions: Click, scroll, write, wait, and press before extracting content
  • Open source: Developed transparently and collaboratively — join our community

---

Feature Overview

Core Endpoints

| Feature | Description | |---------|-------------| | Search | Search the web and get full page content from results | | Scrape | Convert any URL to markdown, HTML, screenshots, or structured JSON | | Interact | Scrape a page, then interact with it using AI prompts or code |

More

| Feature | Description | |---------|-------------| | Agent | Automated data gathering, just describe what you need | | Crawl | Scrape all URLs of a website with a single request | | Map | Discover all URLs on a website instantly | | Batch Scrape | Scrape thousands of URLs asynchronously |

---

Quick Start

Sign up at firecrawl.dev to get your API key. Try the playground to test it out.

Search

Search the web and get full content from results.

from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR_API_KEY")

search_result = app.search("firecrawl", limit=5)

Node.js / cURL / CLI

Node.js

import { Firecrawl } from 'firecrawl';

const app = new Firecrawl({apiKey: "fc-YOUR_API_KEY"});

app.search("firecrawl", { limit: 5 })

cURL

curl -X POST 'https://api.firecrawl.dev/v2/search' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
  "query": "firecrawl",
  "limit": 5
}'

CLI

firecrawl search "firecrawl" --limit 5

Output:

[
  {
    "url": "https://firecrawl.dev",
    "title": "Firecrawl",
    "markdown": "Turn websites into..."
  },
  {
    "url": "https://docs.firecrawl.dev",
    "title": "Firecrawl Docs",
    "markdown": "# Getting Started..."
  }
]

Scrape

Get LLM-ready data from any website — markdown, JSON, screenshots, and more.

from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR_API_KEY")

result = app.scrape('firecrawl.dev')

Node.js / cURL / CLI

Node.js

import { Firecrawl } from 'firecrawl';

const app = new Firecrawl({ apiKey: "fc-YOUR_API_KEY" });

app.scrape('firecrawl.dev')

cURL

curl -X POST 'https://api.firecrawl.dev/v2/scrape' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
  "url": "firecrawl.dev"
}'

CLI

firecrawl scrape https://firecrawl.dev
firecrawl https://firecrawl.dev --only-main-content

Output:

# Firecrawl

Firecrawl helps AI agents search, scrape, and interact with the web.

## Features
- Search: Find information across the web
- Scrape: Clean data from any page
- Interact: Click, navigate, and operate pages
- Agent: Autonomous data gathering

Interact

Scrape a page, then interact with it using AI prompts or code.

from firecrawl import Firecrawl

app = Firecrawl(api_key="fc-YOUR_API_KEY")

result = app.scrape("https://amazon.com")
scrape_id = result.metadata.scrape_id

app.interact(scrape_id, prompt="Search for 'mechanical keyboard'")
app.interact(scrape_id, prompt="Click the first result")

Node.js / cURL / CLI

Node.js

import { Firecrawl } from 'firecrawl';

const app = new Firecrawl({apiKey: "fc-YOUR_API_KEY"});

const result = await app.scrape("https://amazon.com");

await app.interact(result.metadata.scrapeId, {
  prompt: "Search for 'mechanical keyboard'"
});
await app.interact(result.metadata.scrapeId, {
  prompt: "Click the first result"
});

cURL

# 1. Scrape the page
curl -X POST 'https://api.firecrawl.dev/v2/scrape' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"url": "https://amazon.com"}'

# 2. Interact with the page (use scrapeId from step 1)
curl -X POST 'https://api.firecrawl.dev/v2/scrape/SCRAPE_ID/interact' \
-H 'Authorization: Bearer fc-YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{"prompt": "Search for mechanical keyboard"}'

CLI

firecrawl scrape https://amazon.com
firecrawl interact exec --prompt "Search for 'mechanical keyboard'"
firecrawl interact exec --prompt "Click the first result"

Output:

{
  "success": true,
  "output": "Keyboard available at $100",
  "liveViewUrl": "https://liveview.firecrawl.dev/..."
}

---

Power Your Agent

Connect Firecrawl to any AI agent or MCP client in minutes.

Skill

Give your agent easy access to real-time web data with one command.

npx -y firecrawl-cli@latest init --all --browser

Restart your agent after installing. Works with Claude Code, Antigravity, OpenCode, and more.

MCP

Connect any MCP-compatible client to the web in seconds.

{
  "mcpServers": {
    "firecrawl-mcp": {
      "command": "npx",
      "args": ["-y", "firecrawl-mcp"],
      "env": {
        "FIRECRAWL_API_KEY": "fc-YOUR_API_KEY"
      }
    }
  }
}

Agent Onboarding

Are you an AI agent? Fetch this skill to sign up your user, get an API key, and start building with Firecrawl.

curl -s https://firecrawl.dev/agent-onboarding/SKILL.md

See the Skill + CLI documentation for all available commands. For MCP, see firecrawl-mcp-server.

---

More Endpoints

Agent

The easiest way to get data from the web. Describe what you need, and our AI agent searches, navigates, and retrieves it. No URLs required.

Agent is the evolution of our /extract endpoint: faster, more reliable, and doesn't require you to know the URLs upfront.

curl -X POST 'https://api.firecrawl.dev/v2/agent' \
  -H 'Authorization: Bearer fc-YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "prompt": "Find the pricing plans for Notion"
  }'

Response:

{
  "success": true,
  "data": {
    "result": "Notion offers the following pricing plans:\n\n1. Free - $0/month...\n2. Plus - $10/seat/month...\n3. Business - $18/seat/month...",
    "sources": ["https://www.notion.so/pricing"]
  }
}

Agent with Structured Output

Use a schema to get structured data:

from firecrawl import Firecrawl
from pydantic import BaseModel, Field
from typing import List, Optional

app = Firecrawl(api_key="fc-YOUR_API_KEY")

class Founder(BaseModel):
    name: str = Field(description="Full name of the founder")
    role: Optional[str] = Field(None, description="Role or position")

class FoundersSchema(BaseModel):
    founders: List[Founder] = Field(description="List of founders")

result = app.agent(
    prompt="Find the founders of Firecrawl",
    schema=FoundersSchema
)

print(result.data)
{
  "founders": [
    {"name": "Eric Ciarla", "role": "Co-founder"},
    {"name": "Nicolas Camara", "role": "Co-founder"},
    {"name": "Caleb Peffer", "role": "Co-founder"}
  ]
}

Agent with URLs (Optional)

Focus the agent on specific pages:

result = app.agent(
    urls=["https://docs.firecrawl.dev", "https://firecrawl.dev/pricing"],
    prompt="Compare the features and pricing information"
)

Effort Selection

Set how much reasoning the agent spends on the task:

| Effort | Best For | |--------|----------| | low | Simple lookups on one site | | medium | Multi-step tasks on a few pages | | high | Deep resea

上游文档较长,此处为节选。完整内容见官方项目。