GoForum🌐 V2EX

写了一个 Digest — V2EX + Hacker News 聚合日报生成器

jakevin · 2026-03-01 00:57 · 0 次点赞 · 2 条回复

Digest — V2EX + Hacker News 聚合日报生成器

做了一个小工具,每天自动从 V2EX 和 Hacker News 抓取热门内容,评分排序,可选 AI 总结,输出 Markdown 日报。

GitHub: https://github.com/jackwener/kabi-digest

它做了什么

  1. 抓取 — 从 V2EX ( v1/v2 API ,支持多页抓取)和 HN ( Firebase API )获取帖子
  2. 累积 — 多次运行的数据会按 ID 合并,一天内持续扩大候选池
  3. 评分 — 用类 HN 的时间衰减算法排序,新且热门的内容排前面
  4. 正文抓取 — 通过 Jina AI Reader 获取原文全文,V2EX 帖子还会通过 API 获取附言(附言有时比正文还重要)
  5. AI 总结 — 支持 OpenAI / Anthropic ,基于完整文章内容生成中文摘要
  6. 输出 — Markdown 日报,带 YAML frontmatter ,方便集成 Hugo / Astro 等静态站

效果预览

跑一次大概这样:

📥 collect — 2026-03-01

🔶 Hacker News
   Fetching top... 30 stories
🟢 V2EX (pages: 3)
   Fetching hot... 9 topics
   Fetching create... 60 topics
   Fetching programmer... 60 topics

💾 HN: 30 fetched → 85 total in pool
💾 V2EX: 129 fetched → 203 total in pool

✅ Data collected.

生成时:

📊 HN: 0 fetched, 85 pooled → 20 ranked
📊 V2EX: 0 fetched, 203 pooled → 20 ranked

📎 Enriching V2EX items with supplements...
   📎 想要给父母在农村建个四合院... ✓ 2 条附言 (API)
   📎 公司的 AI 客服被真人干掉了... ✓ (Jina fallback)

🤖 OpenAI raises $110B...  ✓
🤖 全职独立开发满一个月...  ✓

✅ out/hn-2026-03-01.md
✅ out/v2ex-2026-03-01.md

设计思路

一开始只是想用 V2EX API 抓个热门列表,后来发现光一次 /topics/hot.json 只有 10 条不太够,就加了分页抓取和数据累积。

collect / generate 分离是为了省 token:白天定时 collect 只积累原始数据,晚上跑一次 generate --no-fetch 一次性评分 + AI 总结。这样 AI 只花一份 token ,但候选池是一整天多次采集的结果。

评分算法直接搬的 HN 排名公式:score = (engagement - 1) / (hours + 2) ^ 1.8,新且热门的帖子得分高,老帖自然衰减。V2EX 用回复数当 engagement ,HN 用 points 。

V2EX 附言是通过 V2 API 的 GET /topics/:id 拿到的 supplements 字段(官方文档没写但实际返回有)。API 失败时 fallback 到 Jina Reader 直接抓帖子页面。

快速上手

bun install
cp config.example.yaml config.yaml
bun run generate --no-ai    # 先不配 AI key ,看看效果

不配 AI key 也能用,只是没有摘要,输出标题 + 元数据。

2 条回复
jakevin · 2026-03-01 00:57
#1

https://v2ex.com/t/1194550?p=1#reply2

用 Rust 写了一个简约版的 opencraw 这是另外一个项目 大家感兴趣的也可以看看

jiaduobao · 2026-03-01 02:32
#2

不错

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: jakevin
发布: 2026-03-01
点赞: 0
回复: 0