Firecrawl 新手完整教程:三步把任意网页变成 LLM 可用的数据
【免费下载链接】firecrawlThe context API to search, scrape, and interact with the web at scale. 🔥项目地址: https://gitcode.com/GitHub_Trending/fi/firecrawl
做 AI 应用时,第一步往往卡在"从网页拿到干净数据"——requests 抓到的是原始 HTML,正则一碰上 JS 渲染页面就全废。Firecrawl 是一个开源的网页抓取 API:给它一个 URL,还你干净的 Markdown 或结构化 JSON,代理、反爬、动态渲染这些脏活它都替你干了。
先认识它:一个把网页"翻译"给大模型的 API
Firecrawl 官方把自己定位为 "The context API to search, scrape, and interact with the web at scale",直白点说:它是大模型和真实网页之间的翻译官。几个关键数字和特性,先给你建立预期:
- Scrape:任意 URL 转 Markdown、HTML、截图或结构化 JSON,单页平均延迟在秒级
- Crawl / Map:一次请求抓完整个网站的所有页面,或瞬间列出站内全部 URL
- Search:搜索网络并直接返回结果页的完整正文,而不只是一串链接
- 结构化提取:按你自己定义的 JSON Schema 抽取字段,AI 负责填
- Actions:提取前可以点按钮、滚动、输入、等待,应对需要交互的页面
开源可自托管,也提供托管服务,两条路都走得通。
快速上手:装包、填密钥、发出第一个请求
三步完成初始化,全程不超过五分钟。
第一步,装 SDK。Python 用户执行pip install firecrawl-py,JavaScript 用户执行npm install @mendable/firecrawl-js。
第二步,到 Firecrawl 官网 注册获取 API Key(有免费额度),写入环境变量FIRECRAWL_API_KEY。
第三步,发出第一个抓取请求:
from firecrawl import FirecrawlApp app = FirecrawlApp(api_key="fc-YOUR_API_KEY") result = app.scrape_url("https://example.com") print(result["markdown"])跑通后你会看到一段干净的 Markdown——没有导航栏、没有脚本,正文、标题层级、表格都保留着。这就是后面所有玩法的起点。
实战一:用数据模型锁定新闻列表,一次抓全字段
场景背景。假设你要每天存一份 Hacker News 首页的数据做分析。传统做法是写 CSS 选择器解析 HTML,页面改版一次代码就崩。
实现路径。项目里自带的 Hacker News 抓取器 展示了另一种写法:先用 Pydantic 定义"我要什么",而不是"怎么解析"。
class NewsItem(BaseModel): title: str rank: str upvotes: str然后scrape_url时传入formats: ["extract"]和NewsData.model_json_schema(),Firecrawl 的 AI 会照着模型把标题、排名、点赞数逐个填好。
运行效果。执行脚本后,一条命令得到 30 条完整新闻,自动写入带时间戳的 JSON 文件(如firecrawl_hacker_news_data_2025_01_15.json)。页面怎么改版都不影响你的字段定义,只需要改模型。
实战二:让程序自己"做研究",多轮翻遍相关网页
场景背景。一次抓取只能看一页,但很多任务需要跨多个页面搜集信息——比如"帮我找某城市 2000 美元以下的一居室"。
实现路径。公寓查找助手示例 用了 Firecrawl 的deep_research能力:你给一句自然语言查询,它自动搜索、跟链接、筛选、再抓下一批页面,循环多轮。参数只有三个:maxDepth(迭代轮数,示例设为 3)、timeLimit(总时长上限 180 秒)、maxUrls(最多分析 20 个 URL)。脚本还注册了一个on_activity回调,每一步动作都实时打印在终端,过程完全透明。
运行效果。你输入城市、预算、卧室数和设施偏好,几分钟后拿到的不是一堆链接,而是整理好的候选清单:价格、位置、设施、优缺点逐条列出,再由 Claude 做最终的排序推荐。相当于雇了一个不知疲倦的调研员。
实战三:AI 先挑页面,再批量提取公司情报
场景背景。做市场调研时,你只知道公司名,不知道该翻哪些页面。直接抓官网首页信息太少,全量爬取又太慢。
实现路径。Gemini 网页提取器示例 把流程拆成三步:先用 SerpAPI 搜出目标公司的一批搜索结果;再让大模型从结果里"挑"出最可能有价值的 URL(只输出一个 JSON 列表);最后把选中的 URL 连同提示词一起发给 Firecrawl 的/v1/extract接口,一次性批量抽取字段。
运行效果。几十秒内得到一份结构化的公司档案:主营业务、规模、联系方式等按你要求的格式返回。搜索、筛选、提取三个环节各司其职,比人工翻网页快一个量级,也远比你自写爬虫稳定。
实战四:定时抓取,搭一个自动价格跟踪系统
场景背景。盯一个商品价格,手动刷太累,而价格数据正是最适合"定时 + 抓取"的组合。
实现路径。Amazon 价格跟踪示例 的套路可以照抄:写一个脚本,每隔固定时间抓取商品页、提取当前价格、追加到数据库或 JSON 文件;再套一个 Web 界面展示历史曲线。调度不用自己维护——把它挂到 GitHub Actions 的 cron 上即可,仓库里专门有一篇 定时抓取教程 讲这个。
运行效果。每天自动落盘一条价格记录,界面上画出趋势图,跌破阈值还能触发通知。整套系统核心就两段:Firecrawl 抓价格 + Actions 管调度。
进阶技巧与常见问题
输出格式按需切换。formats参数可以组合markdown、html、json、screenshot任意几种。只喂大模型用 markdown 最省 token;要存证据链就同时要 screenshot。
控制抓取范围。Crawl 支持limit(上限 URL 数)、includePaths/excludePaths(路径白黑名单),抓整站时先小批量试跑,确认范围再放大。
想自托管?仓库根目录自带 docker-compose.yaml,克隆仓库后docker compose up即可在本地起一套完整服务(API、worker、Redis、Playwright 都在里面),适合不想数据出内网或想改源码的用户。
常见问题:
- 被反爬挡住怎么办?不用管,代理轮换和反爬对抗是 Firecrawl 内置的,这就是它替代手写 requests 的意义。
- 怎么调试抓取效果?先用官网 Playground 在线试,确认输出满意了再写代码。
- 字段抽错了?把 Schema 里字段的
description写得更具体,AI 提取的准确率会明显提升。
更多场景(内部链接 SEO 分析、监控告警等)都可以直接翻 examples 示例目录 照着改。
写在最后
Firecrawl 的价值一句话概括:把"从网页到可用数据"这段最琐碎的路缩成一次 API 调用。装上 SDK、填好密钥、发出第一个请求,五分钟见结果。完整功能文档看仓库首页的 README,动手示例都在 examples/ 里。
【免费下载链接】firecrawlThe context API to search, scrape, and interact with the web at scale. 🔥项目地址: https://gitcode.com/GitHub_Trending/fi/firecrawl
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考