目标:每天 8:00 自动抓取 36氪 + 开源中国 RSS,用七牛云 LLM API 总结为头条风格短资讯,发布到今日头条号。
架构:
n8n(Docker Alpine 容器):编排工作流,7 个节点
Flask(宿主机):Playwright 发布 + Qiniu 代理
七牛云 API(api.qnaigc.com/v1):DeepSeek-v3 模型
工作流:
定时触发(08:00)
→ 36氪 RSS + 开源中国 RSS
→ 合并处理 (Function: 排序/去重/取前5)
→ 七牛云总结 (HTTP Request → Flask /summarize → Qiniu API)
→ 发布头条 (HTTP Request → Flask /publish → Playwright)
→ 发布完成 (NoOp)
已解决的技术问题:
RSS 合并、去重、排序(Function node,JS)
Qiniu API 调用:n8n 的 jsonBody/bodyParameters 在 2.32.5 版本不支持复杂 JSON 数组 → 改用 Flask 代理端点 /summarize
n8n Function node vm2 沙箱不能 require('https')/axios → 一切 HTTP 走 HTTP Request node
Playwright 发布 + playwright-stealth + 登录状态检测
阻塞项:
头条号登录被 WAF 拦截(阿里云机房 IP 返回 error_code: 16),当前 QR 扫码无法完成
解决:手动导出 cookies 上传到服务器,或用代理 IP
远程服务器:123.57.53.39,root/Liugang0531,Ubuntu 26.04,n8n 容器 v2.32.5,Python 3.14.4,Playwright 1.61.0
本地文件:
n8n-workflows/tech_news_workflow.json — 完整工作流(剪贴板已复制)
n8n-workflows/toutiao_publisher.py — Playwright 发布脚本