
























今天在 GitHub Trending 上看到一个有意思的项目:Firecrawl,这是一个专为 AI Agent 设计的网页数据 API,能够搜索、抓取和与网页交互,并将内容转换为干净的 Markdown 或结构化数据。
Firecrawl 是一个开源的网页数据平台,提供 API 来搜索、抓取和与网页大规模交互。它的核心目标是为 AI 系统提供可靠的网页上下文数据,让 Agent 能够轻松获取、提取和转换网页内容为 LLM 可用的格式。
核心特性:
开源与托管:
Firecrawl 采用模块化 API 设计,提供多个核心端点来处理不同的网页数据需求:
| 功能 | 描述 |
|---|---|
| Search | 搜索网页并从结果中获取完整页面内容 |
| Scrape | 将任意 URL 转换为 Markdown、HTML、截图或结构化 JSON |
| Interact | 抓取页面后,使用 AI 提示或代码与页面交互 |
| Agent | 自动化数据收集,只需描述需求 |
| Crawl | 单次请求抓取网站的所有 URL |
| Map | 即时发现网站上的所有 URL |
| Batch Scrape | 异步抓取数千个 URL |
Firecrawl 的技术栈设计考虑了大规模网页抓取的复杂性:
典型的数据流如下:
用户请求 → Firecrawl API → 代理轮换 → JS 渲染(如需要)→ 内容提取 → LLM 就绪输出
对于 Scrape 端点:
Firecrawl 的 Agent 功能提供两个 AI 模型:
| 模型 | 成本 | 适用场景 |
|---|---|---|
spark-1-mini (默认) | 便宜 60% | 大多数任务 |
spark-1-pro | 标准 | 复杂研究、关键数据收集 |
Firecrawl 提供多种语言的 SDK:
Python:
Node.js:
Java:
repositories {
mavenCentral()
maven { url 'https://jitpack.io' }
}
dependencies {
implementation 'com.github.firecrawl:firecrawl-java-sdk:2.0'
}
Rust:
[dependencies]
firecrawl = "2"
tokio = { version = "1", features = ["macros", "rt-multi-thread"] }
fc-YOUR_API_KEY)Python - 抓取单个 URL:
from firecrawl import Firecrawl
app = Firecrawl(api_key="fc-YOUR_API_KEY")
# 抓取网页并转换为 Markdown
result = app.scrape('https://firecrawl.dev')
print(result.markdown)
Python - 搜索网页:
# 搜索网页并获取完整内容
search_result = app.search("firecrawl", limit=5)
for item in search_result.data:
print(f"Title: {item.title}")
print(f"Content: {item.markdown[:200]}...")
1. Scrape - 抓取单个页面
from firecrawl import Firecrawl
app = Firecrawl(api_key="fc-YOUR_API_KEY")
# 基础抓取
result = app.scrape('https://firecrawl.dev', formats=["markdown"])
# 仅提取主要内容(减少噪声)
result = app.scrape('https://firecrawl.dev',
formats=["markdown"],
only_main_content=True)
# 获取多种格式
result = app.scrape('https://firecrawl.dev',
formats=["markdown", "html", "screenshot"])
2. Search - 搜索并获取内容
# 搜索并获取完整页面内容
results = app.search("best AI data tools 2024", limit=10)
for item in results.data:
print(f"URL: {item.url}")
print(f"Title: {item.title}")
print(f"Content: {item.markdown[:100]}...")
3. Crawl - 抓取整个网站
# 抓取整个文档网站
docs = app.crawl("https://docs.firecrawl.dev",
limit=50,
scrape_options={"formats": ["markdown"]})
# SDK 自动处理轮询
for doc in docs.data:
print(f"Page: {doc.metadata.source_url}")
print(f"Content length: {len(doc.markdown)}")
1. Agent - AI 驱动的数据收集
from pydantic import BaseModel, Field
from typing import List, Optional
# 定义结构化输出模式
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")
# 使用 Agent 自动收集数据
result = app.agent(
prompt="Find the founders of Firecrawl",
schema=FoundersSchema
)
print(result.data)
# 输出: {"founders": [{"name": "Eric Ciarla", "role": "Co-founder"}, ...]}
2. Interact - 与页面交互
# 先抓取页面
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")
# 获取交互结果
print(result.output) # "Keyboard available at $100"
3. Map - 发现网站 URL
# 获取网站所有 URL
result = app.map("https://firecrawl.dev")
for link in result.links:
print(f"{link.title}: {link.url}")
# 搜索特定 URL
result = app.map("https://firecrawl.dev", search="pricing")
# 返回与 "pricing" 相关的 URL,按相关性排序
示例 1:构建技术监控 Agent
# 自动收集 GitHub Trending 项目信息
result = app.agent(
prompt="""Collect information about top 10 trending GitHub repositories
including: name, description, stars, primary language, and main features.
Output as structured JSON.""",
model="spark-1-pro" # 使用更强的模型处理复杂任务
)
# 处理结果并生成报告
示例 2:竞品分析
# 比较多个产品的定价和功能
result = app.agent(
urls=["https://firecrawl.dev/pricing",
"https://apify.com/pricing",
"https://scrapingbee.com/pricing"],
prompt="""Compare the pricing plans and features of these three services.
Create a comparison table with: plan name, price, features, limits."""
)
print(result.data)
问题: pip install firecrawl-py 失败
解决方案:
pip install --upgrade pip问题: Authentication failed 或 Invalid API key
解决方案:
fc- 开头)FIRECRAWL_API_KEY 已正确设置问题: 抓取速度慢或超时
解决方案:
only_main_content 减少处理时间limit问题: 某些网站无法正确抓取
解决方案:
问题: 自动 Git 提交失败
解决方案:
git push 验证连接Firecrawl 是一个强大且易用的网页数据 API,特别适合构建 AI Agent 和数据驱动的应用。它的主要优势包括:
对于需要网页数据的 AI 项目,Firecrawl 是一个值得考虑的选择。它不仅提供了强大的 API,还有完善的文档和社区支持。无论是构建技术监控 Agent、竞品分析工具,还是内容聚合平台,Firecrawl 都能显著简化开发流程。
相关资源:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。