评论卡片通过来源记录表连接到带标签的编码文档。

Actor 是托管运行的数据采集程序。本文比较 Chronometrica TikTok Comments Scraper 和 Clockworks TikTok Comments Scraper。核心问题是:你的工作从哪里开始,以及你将如何核验采集到的数据行。

公开规格说明的核查日期为 2026 年 10 月 20 日。下方示例采用文档规定的输入格式。这只是配置示例,不是付费运行,也不是经过验证的实际输出。

先确定需要研究的帖子列表

一位研究者曾提问:“如何获取 TikTok 的全部评论数据?”帖子描述了一种可以采集顶层评论、却无法展开更多回复的工具。因此,采集回复确实是这项需求的一部分。“全部”表达的是期望结果,并不能证明采集工具实际能返回哪些数据。公开研究提问。

顶层评论直接回应帖子。回复则发生在评论串内部。如果你要研究讨论内容,只采集顶层评论可能会遗漏你想研究的交流。

但仅凭是否支持回复,无法决定如何选择。先确认你是否已经知道要采集哪些帖子。固定列表可以明确输入范围。你可以逐行核对采集数据是否属于指定帖子。

如果你从个人主页开始,筛选视频就是采集任务的一部分。Clockworks 的文档说明,它支持根据个人主页用户名扩展出视频列表。这种输入流程可能在评论核验开始之前,就改变你的选择。Clockworks 公开规格说明。

比较输出字段之前,先记录这个起点。“采集这些帖子的评论”和“采集通过这些个人主页找到的视频的评论”,是不同的采集请求。

根据文档比较适用场景

Chronometrica 的文档说明,它会严格核验数据是否属于指定帖子,并在整次运行范围内按评论 ID 去重。去重是指同一个评论 ID 即使被多次获取,也不会被当作多条独立评论验收。文档还说明,回复会单独成行,每个帖子的汇总会区分达到上限和来源已无更多可采数据的情况。这些功能适合需要仔细核验的固定帖子列表。Chronometrica 公开规格说明。

根据文档比较适用场景
选择依据ChronometricaClockworks
本次比较重点关注的产品适用场景(文档所述)核验已知帖子,获取不重复的评论行根据个人主页用户名扩展出视频列表
回复回复单独成行支持回复采集
采集限制顶层评论上限,以及单独的回复上限每个帖子上限,以及每条父评论的回复上限
选择的主要理由根据指定帖子核验采集到的数据行先从提供的个人主页中查找视频

此表概括了已核查的规格说明。它没有对速度或实测准确性进行排名。Chronometrica 公开规格说明、Clockworks 公开规格说明、Clockworks 输入参数定义。

Chronometrica 的文档还说明,它支持采集公开视频帖子和照片/轮播帖子的评论。回复字段包括 `parentCommentId`、`replyToCommentId`、`isReply`、`replyDepth` 和 `replyCount`。这些字段有助于保留评论串结构,但不能证明评论串的每个部分都可获取。Chronometrica 公开规格说明。

本文比较的是文档所述功能与需求的匹配程度。表中未列出某项功能,不代表产品没有该功能。本文所获材料中,没有受控运行结果可以证明任何一方在准确性或可靠性上占优。本文也不比较价格:已保存的 Clockworks Store 页面顶部与 README 中的定价信息不一致。Clockworks Store 页面与 README。

分别设置评论和回复上限

上限是你要求采集任务在指定范围内最多返回的数量。它不是承诺返回的数据行数。

在 Chronometrica 中,`maxCommentsPerVideo` 设置顶层评论上限,范围为 1 至 1,000。`includeReplies` 开关控制是否采集回复。启用回复采集后,`maxRepliesPerComment` 单独设置每条评论的回复上限,范围为 1 至 100。Chronometrica 输入参数定义。

规划数据集规模时,必须注意这两个上限分开设置。如果你请求 3 条顶层评论,同时请求回复,结果可能超过 3 行。实际结果也可能少于所设上限允许的数量。

以下配置示例采用文档规定的字段,数值也在有效范围内。其中的公开 URL 仅用于展示输入格式。使用前,请将其替换为与你的研究相关的公开帖子。

json
{
  "startUrls": [
    "https://www.tiktok.com/@zachking/video/7631200623693729038"
  ],
  "maxCommentsPerVideo": 3,
  "includeReplies": true,
  "maxRepliesPerComment": 2
}
分别设置评论和回复上限

按这些设置,3 条顶层评论各自可能采集到 2 条回复。这个简单案例的可能数据量为 3 行顶层评论加 6 行回复,共 9 行。这是规划计算,不是预期结果。可获取的评论和回复可能使任一数量低于对应上限。

Task 是已保存的输入预设。已核查的 TikTok 评论与回复导出 Task 提供了一个公开的起点。使用前,请检查其输入是否适合你的研究。

先设置较小的上限,确保你能完整检查这批数据。了解输出及其限制后,再提高上限。

保留足够的信息,以便逐行核验

要得到可核验的数据集,仅有评论文本还不够。你需要将每行数据关联到其来源,并在适用时关联到父评论。

将最初指定的帖子列表与导出数据一起保存。保留输入标识、返回的帖子标识、评论 ID,以及可获取的回复关联。指定列表记录你请求了哪些帖子。数据行中的标识则让你能够核验实际验收了哪些数据。

如果数据提供了稳定的帖子 ID,就用它核验数据行是否属于指定帖子。核验的问题很简单:这一行是否属于某个指定帖子?相似的帖子说明文字或创作者姓名不能回答这个问题。

评论 ID 用于识别评论并检查重复。应在整次运行范围内比较 ID,而不只是分别检查各个导出文件。将一批采集数据拆分成多个文件,不应让同一评论的重复记录变成额外验收的评论。

导出时保留文档规定的回复字段。使用 `isReply` 区分数据行类型,并通过可获取的父评论关联保留关系。将 `replyDepth` 和 `replyCount` 保留为来源上下文。不要把回复数当作已采集到同等数量回复行的证明。Chronometrica 输出规格说明。

如果必需的标识或关系值缺失,就保留缺失状态。不要用 0 替代,也不要根据相邻文本推断父评论。如果缺失值使你无法完成所需核验,请将该行标记为待复核。

核对采集数据行与运行汇总是否一致

核对是指检查数量与记录是否一致。计算最终数据集总数之前,先阅读实际的运行汇总。

Chronometrica 的文档说明,汇总会区分达到上限和来源已无更多可采数据的情况。请使用返回汇总中的标签及其定义。不要为了配合报告,自行编造字段并将其当作产品原有的汇总字段。“来源已无更多可采数据”的标签也不能证明已完整归档该帖子的评论历史。Chronometrica 公开规格说明。

使用以下简短的核验方法:

  1. 保存指定帖子的 ID 和采集设置。
  2. 阅读每个帖子的文档所述汇总和停止条件。
  3. 根据指定帖子列表逐行核验。
  4. 在整次运行范围内检查评论 ID 是否重复出现。
  5. 分别统计验收通过的顶层评论行和回复行。
  6. 将验收总数与导出数据及汇总进行比较。
  7. 记录所有无法解释的差异。

为这些决定保留一份由你自行维护的核验记录。这是你自己的记录,不是 Actor 输出字段。它可以列出导入的观测记录数、被剔除的观测记录、验收通过的唯一数据行,以及尚未完成的核验。

观测记录是导入文件中某条数据的一次出现。唯一评论则是完成所需核验后识别出的不重复评论。这两个概念不应共用一个总数。如果数量不同,应同时保留两个数值并说明原因。

还应按帖子保留结果。批次总数可能掩盖某个尚未复核的帖子。分别记录每个帖子的总数,可以看出哪些帖子达到了上限,或哪些帖子的必需核验仍未完成。

用一个含 8 条观测记录的虚构文件练习

以下练习为虚构示例。它演示读者如何自行核验,不是这两个 Actor 当前版本的输出,也不是基准测试或客户结果。

假设导入文件中有 8 条观测记录。其中 2 条的评论 ID 与此前出现的 ID 重复。另有 1 条属于指定列表之外的帖子。剔除这 3 条观测记录后,剩下 5 行验收通过的唯一数据:

`8 − 2 − 1 = 5 accepted unique rows`

这 5 行中,3 行是顶层评论,2 行是回复。验收通过的回复占比如下:

`2 ÷ 5 × 100 = 40% of accepted rows`

分母很重要。40% 描述的是完成上述核验后,验收通过的文件中的比例。它不代表来源帖子上的全部评论,不代表回复人数占总人数的比例,也不代表本次采集到的回复占全部可用回复的比例。

8 条观测记录的总数说明你导入了多少记录。5 行的总数说明有多少唯一数据行通过了核验。3 行顶层评论与 2 行回复的划分说明了验收数据的行类型。每个数字都有不同用途。

在适当情况下,将被剔除的观测记录及剔除原因保存在核验记录中。这样,其他复核者就能核查计算过程,同时不会将被剔除的数据行算入验收通过的数据集。

这个示例说明了标识核验和重复检查为何重要。它不表示这两个 Actor 的当前版本产生过这些虚构问题。如果你要采集固定列表中的帖子,Chronometrica 文档列出的这些核验功能,就是值得进一步查看其规格说明的理由。Chronometrica 公开规格说明。

保留回复上下文,不自行填补缺失信息

使用可获取的关联,将验收通过的回复归到各自的父评论之下。这样既能让数据集用于评论串复核,也能清楚保留来源关系。

检查每条被引用的父评论是否存在于验收通过的数据行中。如果存在,保留关联。如果不存在,保留引用,并将上下文标记为尚未确认。父评论缺失本身不能说明缺失原因。

不要把回复关联到电子表格中距离最近的数据行。行顺序不能代替父评论关联。也不要根据回复推断缺失父评论的文本。

验收通过的回复仍可能缺少完整上下文。后续分析时,应明确保留这一区别。例如,你可以将某条回复计为 1 行,但仍缺少足够的上下文来解释整段交流。

如果之后要为定性编码准备数据,请将这些核验记录与导出数据一起保留。TikTok 评论用于 NVivo 的指南 介绍了下一阶段。本文关注的选择依据是帖子筛选、回复结构和批次总数。

扩大采集前,先说明数据集范围

一份有用的报告应说明验收文件包含什么,以及采集请求允许获取什么。请列出指定帖子、采集设置、验收通过的唯一数据行数、顶层评论数、回复数,以及尚未确认的上下文。

将实际观测总数与配置上限分开记录。上限描述采集请求。验收数量描述核验后的文件。这两个数值不能相互替代。

对于上述虚构练习,可以清楚地表述为:“核验后的文件包含来自指定帖子的 5 行验收通过的唯一数据:3 条顶层评论和 2 条回复。”再补充相关设置和已记录的停止条件。不要将其改写为这些帖子总共只有 5 条评论。

如果某项必需核验尚未完成,也应说明。未知值应保持未知。0 表示测得的数量为 0,不应代表数量缺失。

只有当小规模采集提供了可用的标识、明确的数据行类型,以及足以回答研究问题的评论串上下文后,才应扩大采集。如果某项必需关系仍未确认,请判断你的分析是否仍能使用该行。采集更多数据之前,先记录这个决定。

来源和延伸阅读

作者 Chronometrica · 更新日期

返回顶部 ↑