mcpField
F
firecrawl-scraper

firecrawl-scraper

github.com/secondsky数据与数据库240228 次安装5 周前更新
代码仓库

关于 firecrawl-scraper

面向构建数据流程或 AI 应用的开发者,介绍如何用 Firecrawl 抓取和提取网页内容。涵盖单页抓取、全站爬取、URL 发现和按模式提取,也说明浏览器操作及 Workers REST API 用法。

主要功能

  1. 01将页面抓取为 Markdown、HTML 或截图
  2. 02按域名和深度控制全站爬取
  3. 03发现网站 URL
  4. 04按模式提取数据
  5. 05抓取时执行浏览器操作

适用场景

  1. 01收集文档以构建知识库
  2. 02提取产品名称和价格
  3. 03抓取新闻文章内容
  4. 04全站爬取前发现页面

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/secondsky/claude-skills --skill firecrawl-scraper

安装后在 Claude Code 中输入/firecrawl-scraper确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
common-patterns.md
endpoints.md
templates/
firecrawl-crawl-example.py
firecrawl-scrape-python.py
firecrawl-scrape-typescript.ts
firecrawl-worker-fetch.ts

详细介绍

Firecrawl 网页抓取工具

状态:已可用于生产环境 ✅ 最后更新:2026-08-03 官方文档:https://docs.firecrawl.dev API 版本:v2.5


什么是 Firecrawl?

Firecrawl 是面向 AI 的网页数据 API,可将整个网站转换为适用于大模型的 Markdown 或结构化数据。它支持:

  • JavaScript 渲染 - 执行客户端 JavaScript,以捕获动态内容
  • 绕过反机器人机制 - 绕过 CAPTCHA 和机器人检测系统
  • 格式转换 - 输出 Markdown、JSON 或结构化数据
  • 截图捕获 - 保存页面的可视化呈现
  • 浏览器自动化 - 提供完整的无头浏览器功能

API 端点

1. /v2/scrape - 单页抓取

抓取单个网页并返回干净、结构化的内容。

适用场景:

  • 提取文章内容
  • 获取产品详情
  • 抓取指定页面
  • 将 HTML 转换为 Markdown

主要选项:

  • formats:["markdown", "html", "screenshot"]
  • onlyMainContent:true/false(移除导航栏、页脚和广告)
  • waitFor:抓取前等待的毫秒数
  • actions:浏览器自动化操作(点击、滚动等)
2. /v2/crawl - 全站爬取

从起始 URL 爬取所有可访问的页面。

适用场景:

  • 为整个文档网站建立索引
  • 归档网站内容
  • 构建知识库
  • 抓取多页内容

主要选项:

  • limit:爬取的最大页面数
  • maxDepth:跟进链接的最大深度
  • allowedDomains:限制为指定域名
  • excludePaths:跳过特定 URL 模式
3. /v2/map - URL 发现

映射网站上的所有 URL,但不抓取内容。

适用场景:

  • 查找站点地图
  • 发现所有页面
  • 规划爬取策略
  • 审查网站结构
4. /v2/extract - 结构化数据提取

使用 AI 从页面中提取指定的数据字段。

适用场景:

  • 提取产品价格和名称
  • 解析联系信息
  • 构建结构化数据集
  • 自定义数据模式

主要选项:

  • schema:用于定义所需结构的 Zod 或 JSON 模式
  • systemPrompt:引导 AI 的提取行为

身份验证

所有 Firecrawl 请求都需要 API 密钥。

获取 API 密钥
  1. 在 https://www.firecrawl.dev 注册
  2. 前往控制面板 → API Keys
  3. 复制 API 密钥(以 fc- 开头)
安全存储

切勿将 API 密钥硬编码在代码中!

# .env file
FIRECRAWL_API_KEY=fc-your-api-key-here
# .env.local (for local development)
FIRECRAWL_API_KEY=fc-your-api-key-here

SDK 快速入门

Python
pip install firecrawl-py  # v4.5.0+
from firecrawl import FirecrawlApp
import os

app = FirecrawlApp(api_key=os.environ.get("FIRECRAWL_API_KEY"))
result = app.scrape_url("https://example.com", params={"formats": ["markdown"], "onlyMainContent": True})
print(result.get("markdown"))
TypeScript/Node.js
bun add @mendable/firecrawl-js  # v4.32.0+
import FirecrawlApp from '@mendable/firecrawl-js';

const app = new FirecrawlApp({ apiKey: process.env.FIRECRAWL_API_KEY });
const result = await app.scrapeUrl('https://example.com', { formats: ['markdown'], onlyMainContent: true });
console.log(result.markdown);

参见:templates/ 中的爬取、提取和高级示例


常见用例

用例端点主要选项
抓取文档crawl_url()limit: 500、allowedDomains
提取产品数据extract()Zod 模式 + systemPrompt
抓取新闻文章scrape_url()onlyMainContent: true、removeBase64Images
发现 URLmap()爬取前查找所有页面

参见:references/common-patterns.md 中的完整示例。


错误处理

# Python
try:
    result = app.scrape_url("https://example.com")
except FirecrawlException as e:
    print(f"Firecrawl error: {e}")
// TypeScript
try {
  const result = await app.scrapeUrl('https://example.com');
} catch (error) {
  console.error('Error:', error.message);
}

速率限制与最佳实践

最佳实践原因
使用 onlyMainContent: true减少积分消耗,让输出更简洁
设置合理的 limit避免过高成本
先使用 map 端点规划爬取策略
缓存结果避免重复抓取
批量调用 extract处理多个 URL 时效率更高

积分:免费套餐每月 500 积分,付费套餐额度更高。


集成 Cloudflare Workers

⚠️ SDK 无法在 Workers 中运行(依赖 Node.js)。请使用直接 REST API:

const response = await fetch('https://api.firecrawl.dev/v2/scrape', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${env.FIRECRAWL_API_KEY}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({ url, formats: ['markdown'], onlyMainContent: true })
});

参见:references/common-patterns.md 中包含缓存的完整 Workers 示例。


何时使用此技能

✅ 使用 Firecrawl❌ 不要使用
现代 JS 渲染的网站简单的静态 HTML(使用 cheerio)
适用于大模型的简洁 Markdown现有的 Puppeteer 配置可正常工作
RAG/聊天机器人内容有可用的直接 API
结构化数据提取预算受限
绕过机器人防护

常见问题

问题原因修复方法
"Invalid API Key"未设置密钥检查 $FIRECRAWL_API_KEY 是否以 fc- 开头
"Rate limit exceeded"已用完月度额度检查控制面板,升级套餐
"Timeout error"页面加载缓慢添加 waitFor: 10000
"Content is empty"JS 加载延迟添加 actions: [{type: "wait", milliseconds: 3000}]

高级功能

功能用法
浏览器操作actions: [{type: "click", selector: "button"}]
自定义标头headers: {"User-Agent": "Custom Bot"}
Webhookwebhook: "https://your-domain.com/webhook"
屏幕截图formats: ["screenshot"]

参见:references/endpoints.md,了解完整的 API 参考。


何时加载参考文档

参考文档加载时机……
endpoints.md需要完整的 API 端点文档
common-patterns.mdCloudflare Workers、缓存、批处理、错误处理

软件包版本

软件包版本
firecrawl-py4.5.0+
@mendable/firecrawl-js4.32.0+
APIv2

注意:Node.js SDK 要求 Node.js >=22.0.0,无法在 Workers 中运行。


官方文档:https://docs.firecrawl.dev | GitHub:https://github.com/mendableai/firecrawl

节省 Token:约 60% | 适用于生产环境:✅

评论

支持 Markdown