Hacker News “Show HN” 评论提取
Hacker News / Show HN / 评论提取 / 网页滚动扫描 Hacker News 实时首页,定位第一条“Show HN:”帖子,进入讨论页检查分页,再提取首条评论的作者、时间和前 20 个词。
首页一直在变,任务锚点不能变
Hacker News 首页不是一份静态目录。帖子会随着投票和时间持续换位,所以“第一条以 `Show HN:` 开头的帖子”不能提前写死成某个排名或链接。Fan 需要从当前首页按顺序阅读,识别标题前缀,再进入这条帖子当时的讨论页。
这类任务很小,却浓缩了网页智能体常遇到的三种状态:动态列表中的条件定位、页面底部可能存在也可能不存在的 `More` 分支,以及对某条评论做精确到词数的字段提取。
可以直接交给 Fan 的版本
打开 Hacker News 首页:https://news.ycombinator.com/news。页面加载完成后,从顶部开始按当前显示顺序寻找第一条标题以 `Show HN:` 开头的帖子。不要根据记忆猜帖子,也不要打开其他新闻。
找到后,通过这条帖子的评论入口进入对应讨论页并等待页面稳定。记录帖子完整标题和发布者 ID。
接着沿评论页向下滚动,直到确认页面是否出现 `More` 按钮:如果出现,只点击一次并等待新增评论加载;如果没有出现,不需要补做任何操作,也不要重复寻找。分页检查完成后,以页面从上到下显示的第一条评论为准,读取它的发布者 ID、页面显示的相对评论时间,以及评论正文的前 20 个英文词。按空格分词,保留原有词序;即使第 20 个词落在一句话中间,也在那里停止。
最后用清楚的字段列表返回结果。除了目标帖子的评论入口和条件满足时的一次 `More`,不要点击其他链接;不要展开折叠评论,不要投票,也不要进入回复页面。
录制现场:没有出现 More
视频中,Fan 在当时的 Hacker News 首页找到了第一条 `Show HN:` 帖子,进入 `item?id=49119274` 的讨论页。它向下滚动检查评论列表,但页面没有显示 `More`,于是正确地跳过了这个可选动作,没有为了“完成步骤”而随意点击别处。
页面当时显示的结果是:
- **帖子标题:** Show HN: What should the GUI for AI agents look like?
- **发布者:** akbabu
- **第一条评论发布者:** qsort
- **评论时间:** 33 minutes ago(录制时页面显示)
- **评论前 20 个词:** “I completely agree with you that the chat interface is very undercooked and there's a big untapped space for agent-first”
`agent-first` 正好是第 20 个词,因此结果没有为了把句子补完整而多抄后面的 `interfaces`。这也是字段提取和泛泛总结的区别:输出规则由用户定义,不由句子的自然停顿决定。
“第一条”是页面位置,不是数据库时间
任务要求的是评论页当前显示的第一条评论,而不是后台数据里发布时间最早的评论。Fan 以用户能看到的页面顺序为准,保留了用户名和相对时间的原始呈现。这样用户回看视频时,答案中的每个字段都能在同一页面找到对应证据。
读到这里就停
视频没有展开 `[-]` 折叠项,没有点击 upvote、reply、用户主页或评论中的外链。它完成分页条件判断和指定字段提取后便停止。对于社区网站,只读浏览的边界并不复杂:找到目标、读完所需信息,然后把进一步探索留给用户。