如何用 Firecrawl 技能从网页提取结构化数据并轮询异步任务
2026/9/15 19:19:25 网站建设 项目流程

如何用 Firecrawl 技能从网页提取结构化数据并轮询异步任务

【免费下载链接】awesome-codex-skillsA curated list of practical Codex skills for automating workflows across the Codex CLI and API.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-codex-skills

如果你的 Codex Agent 需要从网页中拿到结构化的 JSON 数据(比如公司名、定价套餐、功能列表),并且要可靠地取回异步任务的最终结果,可以用 awesome-codex-skills 仓库中的 Firecrawl 自动化技能。该技能通过 Composio 的 Firecrawl 集成,把FIRECRAWL_EXTRACT(结构化提取)和FIRECRAWL_EXTRACT_GET/FIRECRAWL_CRAWL_GET(异步任务轮询)接入你的 Codex 会话。前提条件:一个能配置 MCP 服务器的 Codex 环境、一个 Composio MCP 端点,以及一个有额度的 Firecrawl 账号。

准备条件:安装技能并接入 Composio MCP

把技能装进 Codex

按 README 的手动安装方式,把技能文件夹composio-skills/firecrawl-automation/复制到$CODEX_HOME/skills/(默认~/.codex/skills/),然后重启 Codex 让它加载新的技能元数据。

验证安装是否生效:

ls ~/.codex/skills head ~/.codex/skills/firecrawl-automation/SKILL.md

head里应能看到namedescription等 frontmatter。会话中描述提取任务时,Codex 会根据description自动触发该技能;也可以直接点名技能。

配置 MCP 并连接 Firecrawl 账号

技能 frontmatter 声明了requires.mcp: rube,所以必须把 Composio MCP 服务器加入你的 MCP 配置:

https://rube.app/mcp

连接流程(见技能文档 Setup 一节):

  1. 在配置中加入上面的 MCP 端点;
  2. 按提示连接 Firecrawl 账号,Agent 会提供一个认证链接,完成授权即可。

文档同时提醒:Firecrawl 按用量消耗额度(credits),先把爬取范围收窄、在小 URL 集合上测试,再放大。

发起结构化数据提取:FIRECRAWL_EXTRACT

提取使用FIRECRAWL_EXTRACT工具,关键参数:

  • urls(必填):要提取的 URL 数组,beta 阶段最多 10 个,支持https://example.com/blog/*这样的通配符;
  • prompt:自然语言描述要提取什么;
  • schema:定义期望输出结构的 JSON Schema;
  • enable_web_search:是否允许爬取初始域名之外的链接(默认 false)。

promptschema至少提供一个。技能文档给出的示例请求是(文档示例):

"Extract company name, pricing tiers, and feature lists from https://example.com/pricing"

文档的已知坑提醒:schema 或 prompt 写得含糊、频繁改动会产出噪音大、不一致的结果。应先把 schema 定稿(freeze),在小样本 URL 上测试,再扩到大批量。

可选分支:如果你走的是 Composio CLI 集成路径(先执行curl -fsSL https://composio.dev/install | bash安装 CLI——该命令会下载并运行官方安装脚本,注意先确认来源;再composio login登录、composio whoami确认身份,工具未连接时先composio link <toolkit>),同一批工具 slug 可以直接用composio execute调用,参数以 JSON 传入:

composio execute FIRECRAWL_EXTRACT -d '{ "urls": ["https://example.com/pricing"], "prompt": "Extract company name, pricing tiers, and feature lists" }'

其中urlsprompt为读者按自己的目标页面和字段替换的值。调用前可用composio execute FIRECRAWL_EXTRACT --get-schema查看入参、--dry-run预演。

轮询异步任务:EXTRACT_GET 与 CRAWL_GET

提取任务:FIRECRAWL_EXTRACT_GET

FIRECRAWL_EXTRACT对较大的任务也是异步的:调用不会直接返回最终数据,而是返回一个任务id。拿这个idFIRECRAWL_EXTRACT_GET才能取回最终输出。CLI 路径下即:

composio execute FIRECRAWL_EXTRACT_GET -d '{"id": "FIRECRAWL_EXTRACT 返回的 job id"}'

id是上一次FIRECRAWL_EXTRACT调用返回的任务标识,必须原样替换。

整站爬取任务:FIRECRAWL_CRAWL_V2 + FIRECRAWL_CRAWL_GET

爬取走FIRECRAWL_CRAWL_V2,常用参数:url(必填,起始 URL)、limit(默认 10,最大爬取页数)、maxDiscoveryDepthincludePaths/excludePaths(URL 路径正则)、allowSubdomains(默认 false)、crawlEntireDomain(默认 false)、sitemapinclude默认 /skip/only)。

关键行为:FIRECRAWL_CRAWL_V2会立即返回一个任务 ID(UUID),不会等你爬完。后续都用FIRECRAWL_CRAWL_GET轮询,它返回状态、进度、已用额度和已爬页面数据。技能文档中的示例(文档示例):

"Check the status of crawl job 019b0806-b7a1-7652-94c1-e865b5d2e89a"

如果任务卡住或失控,用FIRECRAWL_CANCEL_A_CRAWL_JOB取消它(接受 active 或 queued 状态的任务),避免继续浪费额度;FIRECRAWL_GET_THE_STATUS_OF_A_CRAWL_JOB也可单独用于查进度。两个查询/取消工具都需要爬取发起时返回的任务id(UUID)。

结果如何判定:嵌套响应与常见失败

拿到响应后不能只看外层调用是否成功,文档明确要求检查内层状态:

  • 嵌套错误:单页失败可能藏在response.data.code里(例如SCRAPE_DNS_RESOLUTION_ERROR),即使外层 API 调用是成功的。始终校验内层 status/error 字段。
  • 深层嵌套结果:结果常嵌套在data.data或更深处,拿到响应后先观察返回结构,不要假设是扁平键。
  • 限流:Firecrawl 可能触发 429 "Rate limit exceeded"。文档建议对 429/5xx 做退避;批量抓取用FIRECRAWL_BATCH_SCRAPE代替大量逐个FIRECRAWL_SCRAPE调用;extract 的 URL 批次保持在约 10 个以内。
  • 额度不足FIRECRAWL_EXTRACT可能报 "Insufficient credits"。收窄范围,避免用宽泛的首页 URL(字段稀疏、产出少)。
  • JS 重的页面:不渲染的抓取可能漏掉关键内容,动态页面用waitFor(文档建议 1000–5000ms)或配置scrapeOptions_actions先与页面交互再抓。

限制与边界

  • FIRECRAWL_EXTRACTurls在 beta 阶段上限 10 个;
  • 该技能依赖 Composio MCP(rube端点)与已授权的 Firecrawl 账号,MCP 未配置时技能无法工作;
  • 额度消耗与爬取范围直接相关,文档反复强调"先小后大",但没给出免费的额度阈值或重试间隔等具体数值,实际限速表现以账号实际响应为准。

完成以上步骤后,你可以在 Codex 会话里直接下达"从某页面提取某字段"的自然语言任务:Agent 触发该技能,发起FIRECRAWL_EXTRACT,用返回的 jobid轮询FIRECRAWL_EXTRACT_GET,并按上面的规则校验嵌套响应。完整的工具清单见技能文档的 Quick Reference 表。

【免费下载链接】awesome-codex-skillsA curated list of practical Codex skills for automating workflows across the Codex CLI and API.项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-codex-skills

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询