
页面显示的评论数、公开页面上暴露的条数,以及已保存的行数,是三项各自独立的计量。显示计数是页面界面所报告的总条数。公开页面暴露计数是开放网页上可见的顶层条目数。已保存行数计量的是 Actor 成功采集进你的数据集的行数。它们的单位可能不同。不要假定显示计数的构成,也不要为这些数字之间的任何缺口断言某个具体原因,因为原因可能仍未得到证明。
理解采集边界
要准确评估一份导出,你必须理解四个核心术语:
- 顶层评论:直接发表在主文章或动态信息流上的评论。
- 回复链:嵌套在一条已有顶层评论之下的回复。
- Actor:用于读取并提取网页的托管数据采集程序。
- Task:为采集 Actor 保存的一组运行输入。
Actor 采集网页上暴露的公开数据。如果平台把回复藏在交互菜单后面,或者必须登录账号才能显示完整讨论串的深度,这些隐藏条目就不在公开顶层导出的范围内。
数据集键包括 postUrl、postUrn、commentId、commentUrl、text、authorUrl 和 observedAt。这些键是你的行证据。输出对象 OUTPUT.inputResults 包含每个输入项的摘要字段。这些摘要字段是 status、statusReason、pageCommentCount、publicRowsOnPage、savedRows、isPublicPageComplete、isComplete 和 stopReason。
完整性字段 isComplete 描述的是这一次具体导出结果,而不是所有 Task 限制是否都已满足。字段 isPublicPageComplete 描述的是已暴露页面行的提取情况,而不是完整的对话讨论。缺失值仍然未知。如果某一行缺少 commentId,请把它保留为单独的未解决观察。绝不要做空白 ID 合并。
逐步核验导出覆盖范围的方法
按下面七个步骤评估公开评论导出是否满足你的研究需要。
- 先命名你的目标指标。确定你需要的是已采集的顶层行、公开页面上暴露的行、含回复的完整讨论串,还是不同评论者的人数(每人只计一次)。
- 按帖分组保存输出数据。把每条帖子的摘要键与其已采集的数据集行放在一起。不要在同一次运行里把不同帖子的指标混在一起。
- 先核验输入状态。如果某个输入状态显示失败或受阻,不要把它记成零评论帖。将其计数标为未知。
- 把已保存行与停止规则相比较。检查 stopReason 是否等于 max_comments_reached。即使页面上还有更多可见评论,数值上限也会提前停止采集。
- 按各自的确切定义,把 publicRowsOnPage 和 isPublicPageComplete 与 pageCommentCount 相比较。公开页面完整性描述的是已暴露来源页面行的提取。导出完整性描述的是由此得到的采集结果。这两个字段都不会把顶层样本变成完整的回复树。
- 建立一份覆盖台账。做一张表,每条帖子一行。根据每一项的状态和限制,为它指定一条纯文本决定。
- 为完整讨论串选择经授权的来源。如果项目需要完整回复链,请使用经授权的账号集成或官方 API 工具。
当前默认 Task 输入把 collectAllAvailable 设为 true,且没有数值上限。若要做一次有界限的初次核对,把 collectAllAvailable 改为 false,并把 maxComments 设为 3。保持 includeAuthorDetails 为 false。
下面是一份有效的 JSON 纯文本配置样本,使用的是当前已保存的 Task 输入,来源为 https://www.linkedin.com/posts/timferriss_how-to-become-dramatically-more-productive-activity-7386884213343428608-wrF3. 请把整段 URL 字符串替换为你已知的公开帖子链接:
{
"startUrls": [
"https://www.linkedin.com/posts/timferriss_how-to-become-dramatically-more-productive-activity-7386884213343428608-wrF3"
],
"collectAllAvailable": false,
"maxComments": 3,
"includeAuthorDetails": false
}一次已核对的对照运行显示:已保存 3 行、公开页面暴露 4 行、页面显示评论 4 条,isPublicPageComplete 等于 true,isComplete 等于 false,stopReason 等于 max_comments_reached。这只证明采集有界限,并不能证明完整讨论串。
有三个来源取值是为演示而编造的。三条帖子共用同一个虚构的观察时间:
- P1:pageCommentCount 为 12,publicRowsOnPage 为 6,savedRows 为 3,isPublicPageComplete 为 true,isComplete 为 false,stopReason 为 max_comments_reached。状态为 partial,statusReason 说明数值上限停止了这次导出。决定是:有上限的公开顶层样本;更大的上限可能保存更多已暴露的行,但不保证任何剩余计数。3 除以 12 所得的 25% 数值比,只是单位并不相同的数值比,不是全部不同人员(每人只计一次)的 25%,也不是已证明的对话召回。
- P2:pageCommentCount 为 20,publicRowsOnPage 为 5,savedRows 为 5,isPublicPageComplete 为 true,isComplete 为 true,stopReason 使用面向普通读者的说明:公开页面已无更多可提取内容。状态为 ok,statusReason 说明对已暴露公开页面行的提取已到末尾。决定是:接受已暴露页面样本,而不是一条完整的 20 条评论对话。相差的 15 个条目原因未经证明,也不被断言为隐藏回复。
- P3:所有计数均未知,来源结果为失败,status 为 failed,statusReason 为网络错误。决定是:采集未知;不作出零评论报告,也不设分母。
虚构台账
| 帖子 ID | 状态 | 状态原因 | 页面计数 | 公开行 | 已保存行 | 页面完整 | 导出完整 | 停止原因 | 决定 |
|---|---|---|---|---|---|---|---|---|---|
| P1 | partial | 数值上限停止了这次导出 | 12 | 6 | 3 | true | false | max_comments_reached | 有上限的公开顶层样本 |
| P2 | ok | 已暴露公开页面行的提取已到末尾 | 20 | 5 | 5 | true | true | 公开页面已无更多可提取内容 | 已接受的暴露页面样本 |
| P3 | failed | 网络错误 | 未知 | 未知 | 未知 | 未知 | 未知 | 未知 | 采集未知 |
台账把 P1 的数值上限缺口、P2 的来源范围缺口和 P3 的失败核对分开。已接受的已保存行合计为 3 加 5,得到 8 条观察。P3 仍为未知,不能按零加入。读者可以把这 8 条已观察的行用于一项已说明范围的公开样本研究。不能声称这是 32 人中的 8 人,也不能声称这是全部评论中的 8 条。如果 P1 日后在更高上限下保存 6 行,请保留第二份快照,并在合并观察之前仅按已核对的评论身份去重。
来源和延伸阅读
作者 Chronometrica · 更新日期
返回顶部 ↑
