news 2026/8/28 23:49:31

4个真实项目拆解Firecrawl:网页抓取、结构化提取到自动研究指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
4个真实项目拆解Firecrawl:网页抓取、结构化提取到自动研究指南

4个真实项目拆解Firecrawl:网页抓取、结构化提取到自动研究指南

【免费下载链接】firecrawlThe context API to search, scrape, and interact with the web at scale. 🔥项目地址: https://gitcode.com/GitHub_Trending/fi/firecrawl

Firecrawl 把整站网页转成干净的 Markdown 和结构化数据,解决"爬虫写一半、反爬卡全程"的老问题。这篇指南拆 4 个能直接跑通的项目:电商价格监控、站点内链分析、公司情报收集、AI 租房搜索,每个项目都附核心代码和调优参数,帮你把网页数据接进自己的 AI 应用。

快速上手:5分钟跑通第一次抓取

三步完成初始化:装 SDK、配密钥、发第一次请求。

pip install firecrawl-py
export FIRECRAWL_API_KEY="fc-你的密钥"
from firecrawl import FirecrawlApp app = FirecrawlApp() result = app.scrape_url("https://example.com") print(result.get("markdown", "")[:200])

这段代码做了三件事:初始化客户端、抓取目标页面、把返回的 Markdown 打出来看一眼。确认能拿到干净文本后,下面的场景就可以逐个照搬。

场景一:搭建电商价格监控看板 📉

痛点:消费者盯着大促页面手动刷价格,费时还容易错过限时折扣;卖家想知道竞品价格曲线,更是没辙。

思路:整条流水线是"定时抓取 → 入库 → 画图 → 告警"。项目用 Firecrawl 抓商品页拿当前价格,写进 Supabase 的 Postgres 表,Streamlit 画历史曲线,价格跌破阈值就推 Discord 通知,GitHub Actions 按小时调度,全程免费。完整代码在 examples/blog-articles/amazon-price-tracking/。

代码亮点

result = app.scrape_url( product_url, params={"formats": ["extract"], "extract": {"schema": PriceInfo.model_json_schema()}}, )

用 Pydantic 模型PriceInfo声明"我要价格、货币、标题"三个字段,Firecrawl 就只吐这些字段的结构化结果,不用自己正则切 HTML。

延伸

  • 把阈值从固定金额改成百分比跌幅,能过滤掉日常毛刺波动
  • 调度频率降到每天两次,足够覆盖多数电商的变价节奏,还省额度

场景二:让博客自动长出内链 🌿

痛点:内容团队发新文章时,经常忘记把旧文章链进来,网站结构越做越散,SEO 权重留不住。

思路:先抓目标博客页拿正文,再用map_url扫出整个站点的全部链接(这一步不逐页抓取,大站也快),最后把"正文 + 站内链接清单"交给 LLM,让它只改链接不动正文,输出改好的 Markdown。源码见 examples/internal_link_assistant/。

代码亮点

blog_md = app.scrape_url(url, params={"formats": ["markdown"]})["markdown"] links = app.map_url(base_domain).get("links", []) prompt = f"正文:{blog_md}\n站内页面:{links}\n请只插入内链,返回Markdown"

抓正文和扫站点是两次独立调用,map_url负责"列清单",scrape_url负责"读内容",分工清楚、成本可控。

延伸

  • 给 LLM 加一条约束:只链向主题词重合度高的页面,避免硬塞广告位
  • 把输出的 Markdown 直接接进 CMS 的草稿接口,实现半自动发布

场景三:三步跑通公司情报流水线 🔍

痛点:做尽调或竞品分析时,信息散落在官网、新闻、招聘页里,人工翻网页整理字段,一份报告要花半天。

思路:分三步接力。第一步用 SerpAPI 搜"公司名 + 想了解的信息"拿到候选链接;第二步让 Gemini 2.5 从搜索结果里挑出真正相关的几个 URL,滤掉社交链接和广告位;第三步把选中的 URL 交给 Firecrawl 的 extract 接口,按提示词直接出结构化字段。示例在 examples/gemini-2.5-web-extractor/。

代码亮点

payload = {"urls": urls, "prompt": f"提取{company}的成立时间、业务线、融资情况", "enableWebSearch": True} resp = requests.post(EXTRACT_URL, headers=headers, json=payload, timeout=30)

extract 接口是异步的:提交后拿一个 job id,轮询到完成才取结果,代码里记得加轮询循环而不是读第一次响应。

延伸

  • 搜索源可以换成任意你已有账号的搜索引擎接口,省掉 SerpAPI 费用
  • 选 URL 的模型换成更便宜的 Flash 档,挑链接任务不需要大模型

场景四:深度研究版智能租房助手 🏠

痛点:换房用户要在十几个租房站之间横跳比价,条件一多就乱,手动整理信息不现实。

思路:把"找房"交给 Firecrawl 的 deep_research。它接受一句自然语言查询,自动多轮搜索、抓页、分析,参数用maxDepth控制迭代轮数、timeLimit控总时长、maxUrls封顶分析页数;on_activity回调实时打印每轮在干什么,过程完全可见。研究完把源材料喂给 Claude 3.7,强制输出固定 JSON 结构,终端里直接渲染成对比卡片。源码在 examples/deep-research-apartment-finder/。

代码亮点

params = {"maxDepth": 3, "timeLimit": 180, "maxUrls": 20} results = firecrawl.deep_research( query="杭州滨江两居室,预算4500,带阳台", params=params, on_activity=print_progress, )

三个参数就是成本旋钮:maxUrls每加 10 个页面,耗时和费用都明显上升,先用 20 试水再放开。

延伸

  • 把最终 JSON 结果存 SQLite,多租几次就能对比同一小区的价格变化
  • 提示词里写死字段名,后续接任何下游系统都不用改解析逻辑

Firecrawl 能力速查表

功能典型场景关键调用方式
单页抓取抓正文、转 Markdownapp.scrape_url(url, params={"formats": ["markdown"]})
结构化提取按字段抽价格、新闻条目formats=["extract"]配 Pydantic 模型 schema
整站链接映射内链分析、站点摸底app.map_url(domain)只列链接不抓正文
整站爬虫批量采集多个页面app.crawl_url(url),用 limit 控页数
深度研究多轮搜索+抓取+分析deep_research(query, params, on_activity)
extract 接口多 URL 批量出结构化字段POST 提交 job id,轮询取结果

避坑指南

  • 限流先看额度:free 档有并发和页面数上限,批量任务被 429 时加退避重试,别裸循环硬刷
  • 超时设保守:deep_research 和 extract 都是异步任务,SDK 超时建议给足,研究类任务 180 秒起步
  • 反爬页面换思路:登录墙或强反爬站点抓不到正文时,换官方 API 或第三方数据源,别死磕
  • 密钥别进仓库FIRECRAWL_API_KEY.env或环境变量,.env加进.gitignore,CI 里用 secret 注入
  • 提取 schema 别贪多:一次提取的字段越多、每页越贵,不确定的字段先砍掉再迭代

写在最后

以上 4 个项目覆盖了从单页提取到多轮深度研究的全部链路,代码都能直接克隆运行。更多示例见仓库的 examples/,各语言 SDK 在 apps/ 目录下。

<输出文章> </output article>

Wait, I made an error at the end with the closing tag. Let me provide the corrected version.

<输出文章>

4个真实项目拆解Firecrawl:网页抓取、结构化提取到自动研究指南

Firecrawl 把整站网页转成干净的 Markdown 和结构化数据,解决"爬虫写一半、反爬卡全程"的老问题。这篇指南拆 4 个能直接跑通的项目:电商价格监控、站点内链分析、公司情报收集、AI 租房搜索,每个项目都附核心代码和调优参数,帮你把网页数据接进自己的 AI 应用。

快速上手:5分钟跑通第一次抓取

三步完成初始化:装 SDK、配密钥、发第一次请求。

pip install firecrawl-py
export FIRECRAWL_API_KEY="fc-你的密钥"
from firecrawl import FirecrawlApp app = FirecrawlApp() result = app.scrape_url("https://example.com") print(result.get("markdown", "")[:200])

这段代码做了三件事:初始化客户端、抓取目标页面、把返回的 Markdown 打出来看一眼。确认能拿到干净文本后,下面的场景就可以逐个照搬。

场景一:搭建电商价格监控看板 📉

痛点:消费者盯着大促页面手动刷价格,费时还容易错过限时折扣;卖家想知道竞品价格曲线,更是没辙。

思路:整条流水线是"定时抓取 → 入库 → 画图 → 告警"。项目用 Firecrawl 抓商品页拿当前价格,写进 Supabase 的 Postgres 表,Streamlit 画历史曲线,价格跌破阈值就推 Discord 通知,GitHub Actions 按小时调度,全程免费。完整代码在 examples/blog-articles/amazon-price-tracking/。

代码亮点

result = app.scrape_url( product_url, params={"formats": ["extract"], "extract": {"schema": PriceInfo.model_json_schema()}}, )

用 Pydantic 模型PriceInfo声明"我要价格、货币、标题"三个字段,Firecrawl 就只吐这些字段的结构化结果,不用自己正则切 HTML。

延伸

  • 把阈值从固定金额改成百分比跌幅,能过滤掉日常毛刺波动
  • 调度频率降到每天两次,足够覆盖多数电商的变价节奏,还省额度

场景二:让博客自动长出内链 🌿

痛点:内容团队发新文章时,经常忘记把旧文章链进来,网站结构越做越散,SEO 权重留不住。

思路:先抓目标博客页拿正文,再用map_url扫出整个站点的全部链接(这一步不逐页抓取,大站也快),最后把"正文 + 站内链接清单"交给 LLM,让它只改链接不动正文,输出改好的 Markdown。源码见 examples/internal_link_assistant/。

代码亮点

blog_md = app.scrape_url(url, params={"formats": ["markdown"]})["markdown"] links = app.map_url(base_domain).get("links", []) prompt = f"正文:{blog_md}\n站内页面:{links}\n请只插入内链,返回Markdown"

抓正文和扫站点是两次独立调用,map_url负责"列清单",scrape_url负责"读内容",分工清楚、成本可控。

延伸

  • 给 LLM 加一条约束:只链向主题词重合度高的页面,避免硬塞广告位
  • 把输出的 Markdown 直接接进 CMS 的草稿接口,实现半自动发布

场景三:三步跑通公司情报流水线 🔍

痛点:做尽调或竞品分析时,信息散落在官网、新闻、招聘页里,人工翻网页整理字段,一份报告要花半天。

思路:分三步接力。第一步用 SerpAPI 搜"公司名 + 想了解的信息"拿到候选链接;第二步让 Gemini 2.5 从搜索结果里挑出真正相关的几个 URL,滤掉社交链接和广告位;第三步把选中的 URL 交给 Firecrawl 的 extract 接口,按提示词直接出结构化字段。示例在 examples/gemini-2.5-web-extractor/。

代码亮点

payload = {"urls": urls, "prompt": f"提取{company}的成立时间、业务线、融资情况", "enableWebSearch": True} resp = requests.post(EXTRACT_URL, headers=headers, json=payload, timeout=30)

extract 接口是异步的:提交后拿一个 job id,轮询到完成才取结果,代码里记得加轮询循环而不是读第一次响应。

延伸

  • 搜索源可以换成任意你已有账号的搜索引擎接口,省掉 SerpAPI 费用
  • 选 URL 的模型换成更便宜的 Flash 档,挑链接任务不需要大模型

场景四:深度研究版智能租房助手 🏠

痛点:换房用户要在十几个租房站之间横跳比价,条件一多就乱,手动整理信息不现实。

思路:把"找房"交给 Firecrawl 的 deep_research。它接受一句自然语言查询,自动多轮搜索、抓页、分析,参数用maxDepth控制迭代轮数、timeLimit控总时长、maxUrls封顶分析页数;on_activity回调实时打印每轮在干什么,过程完全可见。研究完把源材料喂给 Claude 3.7,强制输出固定 JSON 结构,终端里直接渲染成对比卡片。源码在 examples/deep-research-apartment-finder/。

代码亮点

params = {"maxDepth": 3, "timeLimit": 180, "maxUrls": 20} results = firecrawl.deep_research( query="杭州滨江两居室,预算4500,带阳台", params=params, on_activity=print_progress, )

三个参数就是成本旋钮:maxUrls每加 10 个页面,耗时和费用都明显上升,先用 20 试水再放开。

延伸

  • 把最终 JSON 结果存 SQLite,多租几次就能对比同一小区的价格变化
  • 提示词里写死字段名,后续接任何下游系统都不用改解析逻辑

Firecrawl 能力速查表

功能典型场景关键调用方式
单页抓取抓正文、转 Markdownapp.scrape_url(url, params={"formats": ["markdown"]})
结构化提取按字段抽价格、新闻条目formats=["extract"]配 Pydantic 模型 schema
整站链接映射内链分析、站点摸底app.map_url(domain)只列链接不抓正文
整站爬虫批量采集多个页面app.crawl_url(url),用 limit 控页数
深度研究多轮搜索+抓取+分析deep_research(query, params, on_activity)
extract 接口多 URL 批量出结构化字段POST 提交 job id,轮询取结果

避坑指南

  • 限流先看额度:free 档有并发和页面数上限,批量任务被 429 时加退避重试,别裸循环硬刷
  • 超时设保守:deep_research 和 extract 都是异步任务,SDK 超时建议给足,研究类任务 180 秒起步
  • 反爬页面换思路:登录墙或强反爬站点抓不到正文时,换官方 API 或第三方数据源,别死磕
  • 密钥别进仓库FIRECRAWL_API_KEY.env或环境变量,.env加进.gitignore,CI 里用 secret 注入
  • 提取 schema 别贪多:一次提取的字段越多、每页越贵,不确定的字段先砍掉再迭代

写在最后

以上 4 个项目覆盖了从单页提取到多轮深度研究的全部链路,代码都能直接克隆运行。更多示例见仓库的 examples/,各语言 SDK 在 apps/ 目录下。

【免费下载链接】firecrawlThe context API to search, scrape, and interact with the web at scale. 🔥项目地址: https://gitcode.com/GitHub_Trending/fi/firecrawl

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/28 23:49:00

大语言模型没有空间感?用流程化设计修正空间推理

技术社区里隔一段时间就会冒出一个类似的问题&#xff1a;How do you correct spatial reasoning of LLMs&#xff1f;翻译过来就是&#xff0c;怎么修正大语言模型的空间推理能力。每次讨论到后面都会分成两派&#xff1a;一派觉得空间推理属于逻辑推理的一部分&#xff0c;只…

作者头像 李华
网站建设 2026/8/28 23:47:33

基于UDP协议实现大文件可靠传输:自定义协议、流量控制与性能优化

简介&#xff1a;在计算机网络中&#xff0c;传输层协议是数据可靠交付的基础。TCP通过连接管理、流量控制和拥塞控制保证了数据的可靠有序传输&#xff0c;但其固有的队头阻塞和拥塞控制算法在高延迟、高丢包环境下可能成为性能瓶颈。相比之下&#xff0c;UDP协议无连接、低开…

作者头像 李华
网站建设 2026/8/28 23:46:22

3 分钟装好 PowerToys:把 Windows 效率拉满

3 分钟装好 PowerToys&#xff1a;把 Windows 效率拉满 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/PowerToys 每天…

作者头像 李华
网站建设 2026/8/28 23:43:14

LibSVM与决策树在鸢尾花分类中的实战对比与调优

1. 项目概述&#xff1a;从经典数据集到实战模型 如果你刚开始接触机器学习&#xff0c;或者想找一个既经典又全面的练手项目&#xff0c;那么“LibSVM与鸢尾花Iris数据集”的组合&#xff0c;绝对是一个绕不开的起点。这个项目听起来简单&#xff0c;但麻雀虽小&#xff0c;五…

作者头像 李华