📈🤖 n8n 股票日报自动推送工作流:从行情接口到手机提醒

📈🤖 n8n 股票日报自动推送工作流:从行情接口到手机提醒

这次折腾的是一个很实用的自动化:股票日报自动推送。📊📲

目标并不复杂:每天固定时间,自动从我的网站接口拉取股票行情和市场新闻,把内容整理成一份文本日报,然后通过 PushPlus 推送到手机端。这样不用每天手动打开网页查数据,到点手机就能收到一份整理好的市场简报。⏰📈📰📲

最终链路是这样的:

1
⏰ 定时触发 -> 📈 获取股票行情 -> 📰 获取市场新闻 -> 🧠 生成日报 -> 📲 PushPlus 推送

这套工作流里,n8n 不负责存股票数据,也不负责展示页面。
真正的数据接口在主站 12700180.xyz 上,n8n 只负责定时调接口、组装内容、发送通知。🧩

n8n 股票日报自动推送工作流截图
📌 这张就是这次股票日报自动推送工作流的核心画面:定时触发、接口请求、日报生成和 PushPlus 推送都串在同一条链路里。

🧩🏗️ 整体架构

这次的服务分工比较清楚,每个模块只做自己该做的事:

图标 模块 作用
🤖 n8n 编排自动化流程,负责定时、请求接口、组装日报、推送
🐳 Docker 在云服务器上运行 n8n 容器
🛡️ 宝塔面板 做反向代理,把域名转发到 n8n 服务
🌐 n8n.12700180.xyz n8n 的访问入口
📊 12700180.xyz 主站,提供股票行情和新闻接口
📲 PushPlus 接收 n8n 发来的日报,并推送到手机端

整体思路就是:
📊 主站负责数据,🤖 n8n 负责任务调度,📲 PushPlus 负责通知触达。

这种拆法比把所有东西都塞进一个服务里舒服很多。主站继续专心提供接口,n8n 只做流程编排,后面如果想换推送渠道,也只需要改最后一个节点。🔁


⏰🚪 触发方式:三个入口进同一条主链路

最终工作流保留了三个入口:

  • 🕛 每天 12:00 自动执行
  • 🕝 每天 14:40 自动执行
  • 🧪 手动测试入口

这三个入口不会各写一套逻辑,而是统一进入同一条主链路:

1
2
3
4
5
6
7
8
9
10
11
🕛 12:00 定时触发
🕝 14:40 定时触发
🧪 手动测试触发

📈 获取股票行情

📰 获取市场新闻

🧠 代码节点生成日报

📲 PushPlus 推送

这样后面要改日报格式、接口地址、推送内容,只需要改主链路,不需要在三个地方重复维护。
这一点很重要,不然后期工作流节点一多,很容易改乱。🧱


🔌📈 第一步:获取股票行情

第一个 HTTP Request 节点用来请求主站的行情接口。🌐

这里 n8n 的定位很简单:拿数据,不加工复杂业务。 📥

比如行情接口可以返回:

  • 📌 指数涨跌:先看大盘温度
  • 自选股行情:关注自己的票
  • 💰 当前价格:知道现在到哪了
  • 📉 涨跌幅:快速判断强弱
  • 🔥 成交额:看市场活跃度
  • 重要异动:把异常变化拎出来

这些数据本身应该由主站接口整理好,n8n 只要负责请求接口并把结果传给下一个节点。

这样做的好处是:如果行情接口以后要换数据源,或者要增加字段,只需要改主站接口,不需要大改 n8n。🧱


📰🌪️ 第二步:获取市场新闻

第二个 HTTP Request 节点用来请求新闻接口。📡

日报只有行情其实不够,最好还要带一点市场背景。比如:

  • 🗞️ 今日重要财经新闻
  • 🏦 政策和宏观消息
  • 📊 行业板块动态
  • ⚠️ 个股风险提示
  • 🔥 热点题材变化

行情告诉你“发生了什么”,新闻告诉你“可能为什么发生”。
把两者组合起来,日报才不会只是几行数字。📑


🧠📝 第三步:代码节点生成日报

拿到行情和新闻之后,用 n8n 的 Code 节点把内容组装成一份文本报告。🧑‍💻

日报不需要写得像研报,手机推送最重要的是清楚、短、能扫读。我的思路是把它拆成几个固定模块:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
📈 股票日报

🧭 一、市场概览
- 📊 指数表现
- 📉 涨跌情况

⭐ 二、自选股行情
- 🏷️ 股票名称
- 💰 当前价格
- 📈 涨跌幅

📰 三、市场新闻
- 🔥 新闻 1
- 🏦 新闻 2
- ⚠️ 新闻 3

🧯 四、简单提醒
- 🗂️ 数据仅供记录
- ⚠️ 不构成投资建议

这种格式的好处是稳定。
每天推送来的结构都一样,手机上扫一眼就知道重点在哪里。📱


📲🚀 第四步:PushPlus 推送到手机

一开始我尝试过用 Outlook SMTP 发邮件,但这里踩了两个坑。📮

第一个错误是:

1
STARTTLS is required

意思是 SMTP 服务器要求必须启用 STARTTLS 加密连接。🔐

后来继续折腾,又遇到:

1
basic authentication is disabled

这就更直接了:微软已经限制普通账号密码方式的 SMTP 登录。
也就是说,就算配置对了服务器、端口和密码,也可能因为认证策略过不去。对于个人自动化来说,这条路配置成本太高,不适合快速落地。😵

最后改成 PushPlus,体验就简单多了:✨

  • 🔑 只需要 token
  • 🌐 用 HTTP 请求发送
  • 📲 手机端接收方便
  • 🧰 不依赖邮箱 SMTP 认证
  • 🧪 调试成本低

在 n8n 里,最后一个 HTTP Request 节点请求 PushPlus 接口,把标题、正文和 token 带过去即可。

token 不建议硬写在公开文章或截图里,最好放在 n8n 的变量、凭据或服务器环境配置里。🔒🧯


🐳🧱 Docker 部署时踩过的坑

这次 n8n 是部署在云服务器 Docker 里的,外面用宝塔做反向代理,访问地址是:

1
n8n.12700180.xyz

部署过程中主要踩了两个坑:一个是网络,另一个是权限。🕳️

🕸️ 1. Docker 网络和 iptables 问题

一开始 Docker 报过这个错误:

1
iptables: No chain/target/match by that name

这个问题通常说明 Docker 在写端口映射规则时失败了。
也就是容器想把内部端口映射到宿主机端口,但宿主机的 iptables 链状态不正常,导致映射规则没写进去。

后面的处理方式是:改成 host 网络,再配合本机监听规避端口映射问题。 🛣️

这样做之后,容器不再依赖 Docker 的端口映射规则,宝塔反向代理也能继续转发到 n8n 服务。✅

🔐 2. n8n 数据目录权限问题

第二个坑是容器反复重启。🔁

核心错误是 n8n 无法写入配置文件:

1
/home/node/.n8n/config

这个路径是容器内部的 n8n 数据目录。
如果宿主机挂载目录权限不对,容器里的 node 用户就写不了配置,n8n 会启动失败或者反复重启。

最后通过给挂载目录设置正确权限解决:

1
./data -> /home/node/.n8n

也就是说,Docker 部署 n8n 时,数据目录不是随便挂上就完事。
权限不对,容器能启动命令,但服务就是跑不稳。⚠️


🛠️🧩 最终工作流节点

最终保留下来的节点结构大概是这样:

图标 节点 作用
🕛 Schedule Trigger 12:00 中午定时执行
🕝 Schedule Trigger 14:40 下午定时执行
🧪 Manual Trigger 手动测试
📈 HTTP Request:行情接口 从 12700180.xyz 获取股票行情
📰 HTTP Request:新闻接口 从 12700180.xyz 获取市场新闻
🧠 Code:生成日报 把行情和新闻拼成推送文本
📲 HTTP Request:PushPlus 把日报推送到手机

这套节点不花哨,但够稳定。
对我来说,自动化工作流最重要的不是节点多,而是链路清晰、问题好排查。🧭


✅🎉 最终结果

目前手动测试已经跑通,PushPlus 也成功收到推送。📲✅

保存工作流并开启 Active 之后,浏览器页面可以直接关闭。
因为 n8n 是跑在云服务器 Docker 里的,只要服务器、容器和 n8n 服务还在,它就会继续按设定时间自动执行。

这也是把 n8n 部署到云服务器的好处:
不用依赖本地电脑开机,不用担心浏览器关掉任务就停了。☁️


🧾💡 这次折腾的收获

这套股票日报工作流看起来只是一个小自动化,但里面其实串起了几个很典型的能力:

  • 定时任务:让它每天自己跑
  • 🌐 HTTP 接口调用:把主站数据接进来
  • 🧩 多数据源组装:行情 + 新闻合成一份日报
  • 🧠 文本报告生成:用 Code 节点整理内容
  • 📲 手机通知推送:PushPlus 负责最后触达
  • 🐳 Docker 服务部署:n8n 长期跑在云服务器
  • 🔁 云服务器长期运行:关浏览器也不影响自动任务

后面如果要扩展,也很自然:

  • 📈 增加更多股票接口
  • 🧭 增加指数和板块数据
  • 🤖 增加 AI 总结节点
  • 🚨 增加异常行情提醒
  • 🌙 增加每日收盘复盘
  • 🗄️ 增加数据库归档

现在这版先不追求复杂,先把“每天自动推送一份能看的股票日报”跑稳。
自动化工具最有价值的地方就是:把每天重复做的小事,变成服务器自己按时完成的任务。 🚀