
概览
- 检测网页自上次抓取以来是否发生变化
- 查看不同抓取之间的具体更改
- 获取关于变更内容的结构化数据
- 控制变更的可见性
changeTracking
格式,你可以监控网站上的变化,并获取以下信息:
previousScrapeAt
:当前页面所对比的上一次抓取的时间戳(如果没有之前的抓取则为null
)changeStatus
:两个页面版本比较的结果new
:此页面之前不存在或未被发现(通常previousScrapeAt
为null
)same
:自上次抓取以来,此页面的内容未发生变化changed
:自上次抓取以来,此页面的内容已发生变化removed
:自上次抓取以来,此页面已被移除
visibility
:当前页面/URL 的可见性visible
:此页面可见,表示其 URL 是通过自然路径(经由其他可见页面的链接或 sitemap)被发现的hidden
:此页面不可见,表示它仍可在网上访问,但不再能通过 sitemap 或站点爬取被发现。我们只能在该链接曾在先前的爬取或抓取中可见并被捕获的情况下识别此类不可见链接
SDK
基本用法
'changeTracking'
:
高级选项
formats
数组中传入一个对象来配置 changeTracking:
Git Diff 结果示例:
JSON 对比结果示例:
数据模型
变更跟踪模式
Git-Diff 模式
git-diff
模式提供一种与 Git 输出相似的传统 diff 格式。它逐行展示变更,并用新增与删除标记。
示例输出:
files
:已更改文件的数组(在网页场景中通常只有一个)chunks
:文件内的变更片段changes
:按类型(add、delete、normal)标注的单行变更
JSON 模式
json
模式会对从内容中提取的特定字段进行结构化对比。这有助于追踪具体数据点的变化,而不是比较整段内容。
示例输出:
重要说明
-
比较方式:抓取结果始终通过其 markdown 响应进行比较。
- 使用
changeTracking
format 时,必须同时指定markdown
format。也可以额外指定其他 formats。 - 比较算法对空白字符和内容顺序的变化具备鲁棒性。为抵御带有随机化 URL 的验证码和反爬措施,目前会忽略 iframe 的源 URL。
- 使用
-
匹配历史抓取:用于比较的历史抓取目前基于源 URL、团队 ID、
markdown
format 和tag
参数进行匹配。- 为获得有效比较,输入的 URL 应与此前针对相同内容的请求完全一致。
- 使用不同的
includePaths
/excludePaths
爬取相同 URL,在使用changeTracking
时会产生不一致。 - 使用不同的
includeTags
/excludeTags
/onlyMainContent
抓取相同 URL,在使用changeTracking
时会产生不一致。 - 被比较的页面也会与仅包含
markdown
format 而不包含changeTracking
format 的历史抓取进行比对。 - 比较限定在你的团队范围内。如果你首次使用你的 API key 抓取某个 URL,其
changeStatus
将始终为new
,即使其他 Firecrawl 用户之前已抓取过它。
-
Beta 状态:在 Beta 期间,建议关注结果文档中的
warning
字段,并处理响应中可能缺失的changeTracking
对象。- 当用于查找比对对象的数据库查询超时时,可能会出现这种情况。
示例
基础抓取示例
爬网示例
跟踪商品价格变动
使用 Git-Diff 监控内容更改
计费
git-diff
模式不收取额外费用。但如果你使用用于结构化数据比对的 json
模式,页面抓取将按每页收取 5 个积分。