为什么要做这个

每天手动刷几十个新闻源、再把重点整理成文章太费时间。于是搭了一整套自动化流程:每天清晨 5 点,脚本自动抓取「科技圈、经济财经、加密货币」三大板块的新闻,交给 AI 润色成一篇日报,然后自动发布到博客。全程无人值守。

整体流程

1
抓取 RSS 源 → 筛选昨天的条目 → AI 润色成稿 → 生成 Markdown → Hexo 构建 → 部署到 GitHub Pages

每一步都由一个 Node.js 脚本 daily-post.js 串联,由 Windows 计划任务在每天 05:00 触发。

关键组件

1. RSS 抓取

用 Node.js 24 内置的 fetch,不依赖任何第三方库,手写正则解析 RSS 2.0 和 Atom 两种格式。每个源设置 15 秒超时,失败自动跳过,不影响整体。

2. 自建 RSSHub

公共 RSSHub 实例不稳定,中文财经源(华尔街见闻、财联社、金十等)直连也常常失败。于是用 Docker 自建了一个 RSSHub(端口 1200),把这些源稳定地转成统一 RSS 输出。

这里踩过一个坑:Docker Desktop 的 localhost(IPv6)端口转发有 bug,会导致请求全部超时,改用 127.0.0.1 就正常了。

3. AI 润色

调用大模型把筛选出的几十条新闻综合成一篇结构清晰的日报:一句导语总览,再分「科技圈」「经济财经」「加密货币」三小节,结尾一句话总结。模型按 OpenAI 兼容协议接入,换模型只需改配置。

4. 定时任务

用 Windows 的 schtasks 注册了一个每天 05:00 执行的任务,入口是 run-daily.bat,调用脚本完成全流程。

5. 无人值守部署

GitHub 用 SSH 免密,脚本构建完成后直接 hexo deploy 推到 gh-pages/main 分支,无需人工干预。

数据源清单

  • 科技:爱范儿、少数派、Solidot、开源中国
  • 财经:界面新闻 + 自建 RSSHub(华尔街见闻快讯/全球、财联社电报、金十数据、财富中文网、36氪快讯)
  • 加密:CoinTelegraph、Bitcoin Magazine、Decrypt、The Block、Blockworks

踩过的坑

  1. Hexo 自动加载 scripts/ 目录:把脚本放进去会被当成插件加载报错,最终把自动化脚本整体移到博客目录外。
  2. localhost 端口转发 bug:Docker Desktop 的 IPv6 localhost 转发有问题,源码全部改用 127.0.0.1。
  3. 中文财经直连源大面积失效:36kr、FT中文网、公共 RSSHub 等要么超时要么返回 HTML,最终靠自建 RSSHub 解决。

总结

这套系统的核心价值在于「无人值守」:RSS 提供事实,AI 负责组织语言,Hexo 负责呈现,计划任务负责准点触发,SSH 负责自动部署。每天醒来,博客上已经有一篇新鲜的日报了。