一块公开讨论面板和一份有界限的评论导出并排放着,旁边是一块单独的摘要面板和一个尚未解决的托盘。
请分别核对公开页面范围和已保存行。

页面显示的评论数、公开页面上暴露的条数,以及已保存的行数,是三项各自独立的计量。显示计数是页面界面所报告的总条数。公开页面暴露计数是开放网页上可见的顶层条目数。已保存行数计量的是 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 合并。

逐步核验导出覆盖范围的方法

按下面七个步骤评估公开评论导出是否满足你的研究需要。

  1. 先命名你的目标指标。确定你需要的是已采集的顶层行、公开页面上暴露的行、含回复的完整讨论串,还是不同评论者的人数(每人只计一次)。
  2. 按帖分组保存输出数据。把每条帖子的摘要键与其已采集的数据集行放在一起。不要在同一次运行里把不同帖子的指标混在一起。
  3. 先核验输入状态。如果某个输入状态显示失败或受阻,不要把它记成零评论帖。将其计数标为未知。
  4. 把已保存行与停止规则相比较。检查 stopReason 是否等于 max_comments_reached。即使页面上还有更多可见评论,数值上限也会提前停止采集。
  5. 按各自的确切定义,把 publicRowsOnPage 和 isPublicPageComplete 与 pageCommentCount 相比较。公开页面完整性描述的是已暴露来源页面行的提取。导出完整性描述的是由此得到的采集结果。这两个字段都不会把顶层样本变成完整的回复树。
  6. 建立一份覆盖台账。做一张表,每条帖子一行。根据每一项的状态和限制,为它指定一条纯文本决定。
  7. 为完整讨论串选择经授权的来源。如果项目需要完整回复链,请使用经授权的账号集成或官方 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 字符串替换为你已知的公开帖子链接:

json
{
  "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状态状态原因页面计数公开行已保存行页面完整导出完整停止原因决定
P1partial数值上限停止了这次导出1263truefalsemax_comments_reached有上限的公开顶层样本
P2ok已暴露公开页面行的提取已到末尾2055truetrue公开页面已无更多可提取内容已接受的暴露页面样本
P3failed网络错误未知未知未知未知未知未知采集未知

台账把 P1 的数值上限缺口、P2 的来源范围缺口和 P3 的失败核对分开。已接受的已保存行合计为 3 加 5,得到 8 条观察。P3 仍为未知,不能按零加入。读者可以把这 8 条已观察的行用于一项已说明范围的公开样本研究。不能声称这是 32 人中的 8 人,也不能声称这是全部评论中的 8 条。如果 P1 日后在更高上限下保存 6 行,请保留第二份快照,并在合并观察之前仅按已核对的评论身份去重。

来源和延伸阅读

作者 Chronometrica · 更新日期

返回顶部 ↑