

# Chronometrica 与 Apify Facebook Comments Scraper：导出到 Excel 该选哪一个？

如果你需要为每篇帖子的 Excel 导出设置评论和回复的保存总行数上限、保留清晰的回复关联，并可选设置开始和结束日期，就选择 Chronometrica 的 Facebook Comments Scraper。这些控制选项适合已选定公开 Facebook 讨论串、需要清楚界定文件采集范围的分析人员。[Chronometrica 文档](https://apify.com/chronometrica/facebook-comments-scraper)。

Apify 的 Facebook Comments Scraper 也能将公开评论和回复导出到 Excel。如果它现有的集成或文档所述的 3 层评论结构符合你的需求，就选择它。[Apify 文档](https://apify.com/apify/facebook-comments-scraper)。

首先要确定电子表格必须包含什么。“导出这个讨论串”这样的目标仍有关键问题未明确：回复是否计入上限、如何保留回复关联，以及文件应包含哪个日期范围的内容。

本次对比使用了于 2026 年 10 月 20 日核查的公开文档。推荐依据是这些文档记载的控制选项。有关价格、速度、准确性或可靠性的主张，均无双方直接对比的采集测试作为支持。

Actor 是托管运行的数据采集程序。本文讨论的 2 款产品都是 Apify 上的 Actor。Task 是保存好的输入预设，可帮助你从已知配置开始运行。

## 对比影响 Excel 文件的控制选项

用此表将采集控制选项与你的文件要求逐项对照。

| 要求 | Chronometrica（[文档](https://apify.com/chronometrica/facebook-comments-scraper)） | Apify（[文档](https://apify.com/apify/facebook-comments-scraper)） |
| --- | --- | --- |
| 保存行数上限 | `maxResultsPerPost` 将保存的评论和回复合并计数 | 嵌套回复可能使结果数量超过请求数量 |
| 回复结构 | 包含父评论和根评论 ID；保存回复时，必须同时保存其父评论和根评论 | 导出回复及讨论串深度，最多支持 3 层 |
| 采集日期范围 | 包含开始和结束日期当天 | 可输入开始日期；结束日期可在 Excel 中筛选 |
| 现有工作流程 | 公开 Task 提供小规模导出配置 | 支持 Excel 导出和官方 Make 集成 |

这些控制选项配合使用，使 Chronometrica 适合上述需求。每篇帖子的行数上限有助于界定保存样本的大小。父评论和根评论 ID 可保留回复结构。开始和结束日期让你能在采集前确定时间范围。[Chronometrica 文档](https://apify.com/chronometrica/facebook-comments-scraper)。

父评论 ID 用于标识某条回复直接回应的评论。根评论 ID 用于标识该回复串起点的顶层评论。当你需要查看某条回复针对哪条发言时，这些关联很重要。

使用能满足实际要求的控制选项。如果你只需要一个供人工阅读的小文件，日期范围可能没有额外价值。如果文件用于特定时期的报告，就应在采集数据行之前定义该时期。

## 明确每行数据代表什么

运行任一 Actor 前，先写一份简短的采集计划。这样就有明确依据来检查导出结果。

1. 明确来源。保留每篇目标帖子的直接内容 URL。在未登录的状态下打开它，确认访客能阅读你需要的评论。
2. 选择分析单位。说明你分析的是单条评论、回复、账号，还是完整对话。这些是不同的单位。
3. 设置上限。写明每个内容 URL 最多保存多少行。说明此上限是否包含回复。
4. 定义时间范围。仅在问题需要时使用日期范围。如果需要起止日期明确的时期，就记录开始和结束日期。
5. 定义文件检查项。说明导出后必须保留哪些 ID 和回复关联。

一行评论数据是一条已保存的评论或回复。它不代表一个人。一个账号可以发表多条评论，而且公开的作者名称并不是个人的唯一标识。

一行数据也不代表一段完整对话。一条顶层评论及其多条回复可能占用多行。因此，设置行数上限的样本中，完整对话的数量可能比仅看行数时预想的更少。

这一区别会影响你对文件的解读。如果报告需要统计已保存的发言数量，就统计评论行数。如果需要统计账号数量，就另外定义账号统计方法，并说明现有公开作者数据的局限。不要把总行数当作总人数。

Chronometrica 仅采集无需登录即可查看的评论。私密帖子和仅好友可见的帖子不在采集范围内。请提供受支持的内容 URL，而不是公共主页、个人主页、小组、快拍或动态消息页的 URL。小组内的帖子仍须符合受支持 URL 和公开访问规则。[Chronometrica 文档](https://apify.com/chronometrica/facebook-comments-scraper)。

## 选择行数上限和日期规则

Chronometrica 的 `maxResultsPerPost` 接受 1 至 10,000 的值，默认值为 500。它限制每个输入内容 URL 保存的评论和回复总行数。`includeReplies` 默认关闭回复采集。如果样本需要包含回复，就将其开启。[Chronometrica 文档](https://apify.com/chronometrica/facebook-comments-scraper)。

根据计划开展的工作选择上限。第一个文件应足够小，便于逐行检查。该文件通过检查后，再根据分析计划提高上限。

将行数上限与运行费用上限分开处理。如果两者都使用，就分别记录。不要把费用上限当作运行一定会生成某个行数的保证。

采集首个样本时，将 `collectAllAvailable` 保持为 `false`。将其设为 `true` 会取消数量上限。检查输入和导出流程是否正常，无需更改此设置。[Chronometrica 文档](https://apify.com/chronometrica/facebook-comments-scraper)。

如果需要包含起止日期的日期范围，就使用 `commentsFrom` 和 `commentsUntil`。“包含”是指指定的边界日期也属于该范围。启用日期筛选时，Chronometrica 会跳过日期未公开的评论。回复还需要有一条已保存且处于该日期范围内的父评论。[Chronometrica 文档](https://apify.com/chronometrica/facebook-comments-scraper)。

这条日期规则会改变样本。如果报告要求特定日期范围，且你接受这些排除条件，就设置日期范围。如果首要任务是在不受该限制的情况下检查可获取的数据行，就省略日期字段。

将此选择写入采集计划。后续读者应能判断，某行缺失是否可能源于日期规则、行数上限或其他采集范围限制。

## 使用已发布的 Task 采集小样本

从[将 Facebook 评论导出为 CSV 或 Excel 的 Task](https://apify.com/chronometrica/facebook-comments-scraper/examples/export-facebook-comments-to-csv) 开始。它为导出流程提供了已保存的初始配置。

以下输入使用当前已发布的输入结构。请将示例 URL 替换为目标公开帖子的 URL。这是输入示例，不是采集结果。

```json
{
  "startUrls": ["https://www.facebook.com/reel/1733966934399341"],
  "maxResultsPerPost": 25,
  "includeReplies": true,
  "commentSortMode": "all",
  "collectAllAvailable": false
}
```

使用已发布的 Task 采集小样本

此配置为输入的内容 URL 设置了最多保存 25 行的上限，回复也计入此上限。它使用受支持的输入字段，并为本次样本开启回复采集。[Chronometrica 文档](https://apify.com/chronometrica/facebook-comments-scraper)。

扩大样本前，先用小样本检查采集流程：

1. 替换 URL，并确认行数上限。
2. 使用这份小规模输入运行 Task。
3. 查看 `OUTPUT` 中的输入失败信息和停止原因。
4. 保存未经修改的 JSON 导出文件和运行摘要。
5. 根据已保存的结果创建 Excel 工作文件。

Chronometrica 在 `OUTPUT` 中报告输入失败信息和停止原因。它不会把这些消息作为虚假的评论行插入结果。即使评论文件中已有数据行，也要检查该记录。[Chronometrica 文档](https://apify.com/chronometrica/facebook-comments-scraper)。

保存的 JSON 可供后续检查时对照。如果某个值在导入电子表格时发生变化，你可以将其与原始导出值比较。将运行摘要与 JSON 一起保存，以便同时保留数据行和采集停止的原因。

Apify 数据集支持 JSON 和 Excel 导出。数据集是一次运行所保存的结果行集合。你可以保存 JSON 作为对照，并使用 Excel 文件作为工作副本。[Apify 数据集文档](https://docs.apify.com/storage/dataset)。

## 导入文件时保留原始 ID

ID 用于关联电子表格中的数据行。在排序、筛选或添加分析列之前，先确保 ID 得到保留。

Chronometrica 的数据行包含 `commentId`、`isReply`、`parentCommentId`、`rootCommentId`、`publishedAt` 和 `scrapedAt`。此外还有评论文本、公开作者字段和表态字段。`scrapedAt` 记录采集时间。[Chronometrica 文档](https://apify.com/chronometrica/facebook-comments-scraper)。

按以下方法导入：

1. 保留原始导出文件。在副本中操作，以保留来源中的原始值。
2. 将 ID 列设为文本。将 `commentId`、`parentCommentId` 和 `rootCommentId` 作为标识符保留，不要转换为数值。
3. 检查日期和缺失值。将它们用于筛选或计算前，先与 JSON 对照文件核查。
4. 在单独的列中添加分析内容。保留来源字段，以便复核。

对于 CSV 文件，Microsoft 文档介绍了“数据 > 获取和转换数据 > 从文本/CSV”路径，以及“转换数据”选项。采用可控制字段类型的导入方式，在加载前将 ID 列设为文本。这样就无需依赖 CSV 自动格式设置，可按要求将相关列保留为文本。不同 Excel 版本的菜单布局可能不同。[Microsoft 文本和 CSV 导入指南](https://support.microsoft.com/en-us/excel/get-started/import-or-export-text-txt-or-csv-files)。

让未知值保持未知。公开来源可能缺少计数、日期和身份信息。表态次数缺失并不表示表态次数为 0。日期缺失也不表示日期较早。不要用会改变其含义的值替换这些缺失值。

同样的规则也适用于作者字段。保留返回的公开值，但不要仅凭显示名称相同，就认定 2 行数据来自同一个人。

## 扩大采集规模前，先检查已保存的样本

文件能在 Excel 中打开，仍然需要检查。根据采集计划检查数据行及其关联。

1. 统计保存的行数。将总行数与设定的上限及记录的停止原因对照。
2. 统计去重后的评论 ID 数量。“去重”是指每个不同的 ID 只计数一次。如果行数与去重后的 ID 数量不同，应先查明原因，再决定是否将每行视为一条独立评论。
3. 检查回复引用。对每条回复，确认每个非空的 `parentCommentId` 和 `rootCommentId` 都存在于已保存的 `commentId` 值中。
4. 检查导入结果。将 ID 字符串及选取的日期值与未经修改的 JSON 对照。
5. 记录采集范围限制。说明采集是因达到上限而停止，还是因其他已报告的原因而停止。将来源 URL 和采集时间与这份说明一起保存。

非空引用包含一个值，而不是空引用。如果该值指向文件中不存在的数据行，说明保存的文件未通过关联检查。请查明原因。不要为了通过检查而创建父评论行，或补写缺失的评论文本。

有数量上限的运行得到的是样本。即使一次运行已采集到可获取来源的末尾，也不能证明 Facebook 提供了全部评论。两款产品都无法据此确认已完整采集 Facebook 显示的所有内容。除非有证据表明两个计数描述的是同一组公开内容，否则不要用已保存行数除以 Facebook 显示的计数，并将结果称为“总覆盖率”。

这些检查可以支持一个有用且范围更明确的结论：保存的文件符合设定的行数规则，保留了原始 ID，并且回复引用有效。这足以帮助你决定，是否为既定任务扩大采集规模。

如果下一步是分析反馈，请继续阅读[导出 Facebook 评论并分析客户反馈](/zh-Hans/articles/%E5%A6%82%E4%BD%95%E5%AF%BC%E5%87%BAfacebook%E8%AF%84%E8%AE%BA%E5%B9%B6%E5%88%86%E6%9E%90%E5%AE%A2%E6%88%B7%E5%8F%8D%E9%A6%88/)。该指南介绍了在选定并检查导出流程后，如何使用这些数据行。

## 虚构的决策示例

以下整个示例均为虚构。一位分析人员已经选定了 2 篇公开帖子。每篇帖子最多需要保存 100 行，包含回复。每条回复都必须保留与父评论的关联。报告还要求设置开始和结束日期，且包含这两个日期当天。分析人员接受排除日期无法获取的评论。

Chronometrica 符合这些控制要求。分析人员将 `maxResultsPerPost` 设为 100，开启回复采集，保留数量上限，并提供所需的开始和结束日期。对于 2 个不同的内容项，在来源限制影响结果之前，设定的保存总行数上限为 200。[Chronometrica 文档](https://apify.com/chronometrica/facebook-comments-scraper)。

假设某个已保存的样本包含 70 条顶层评论和 30 条回复。它有 100 行评论数据。它并不代表 100 个人或 100 段完整对话。

分析人员检查已保存的 ID。如果每条回复的父评论和根评论都存在于文件中，样本就通过了关联检查。此结论仅针对已保存的样本，不能证明来源中的整个讨论串已被完整采集。分析人员保留 JSON 和摘要，然后准备 Excel 工作副本。

如果要求改变：分析人员已在使用 Apify 官方 Make 模块，希望采用其 3 层导出结构，然后在 Excel 中筛选日期。此时，Apify 可能更适合现有操作流程。[Apify 文档](https://apify.com/apify/facebook-comments-scraper)。

如果实际要求是获取每一条私密评论，这 2 款公开数据 Actor 都不适用。必须先调整采集要求，本次对比才能帮助你做出合适的选择。

## 先采集并检查一个 Chronometrica 样本

如果保存行数上限、回复关联及开始和结束日期符合你的 Excel 要求，就使用 [Chronometrica 的 Facebook Comments Scraper](https://apify.com/chronometrica/facebook-comments-scraper)。替换示例 URL，采集上限为 25 行的样本，并保存其 JSON 和摘要。只有在 ID、回复关联和导入检查均通过后，才提高上限。

## 来源和延伸阅读

- [Chronometrica Facebook Comments Scraper](https://apify.com/chronometrica/facebook-comments-scraper)
- [将 Facebook 评论导出为 CSV 或 Excel 的 Task](https://apify.com/chronometrica/facebook-comments-scraper/examples/export-facebook-comments-to-csv)
- [Apify Facebook Comments Scraper](https://apify.com/apify/facebook-comments-scraper)
- [Apify 数据集文档](https://docs.apify.com/storage/dataset)
- [Microsoft：导入或导出文本和 CSV 文件](https://support.microsoft.com/en-us/excel/get-started/import-or-export-text-txt-or-csv-files)