本文记录了一个基于 Python 的圆圈网自动更新方案,包括 RSS 采集、关键词/LLM 筛选、SQLite 去重、摘要生成与发布,以及通过标题自动生成大纲、正文和封面的长文发布流水线。项目支持定时任务和 dry run 模式,只需配置 API 端点即可投入使用。
核心问题
如何用 Python 搭建自动发布资讯和长文到圆圈网的系统?
项目背景
目标是为圆圈网搭建一个自动化内容更新系统,能够定时从 RSS 源抓取资讯,经过智能筛选和去重后自动发布,同时也支持根据指定标题生成完整的文章并发布。方案被拆分为两条流水线:
- 流水线 A(资讯发布):RSS 采集 → 关键词/LLM 筛选 → SQLite 去重 → 摘要生成 → 发布至圆圈网
- 流水线 B(长文生成与发布):给定标题 → LLM 生成大纲和正文 → 生成封面/插图(通义/智谱/占位图)→ 上传 → 发布长文
项目使用 Python 实现,所有核心模块封装在 src 目录下,并通过命令行接口提供灵活的运行模式。
项目结构与核心模块
d:\python_project\自动更新圆圈网
├── src/
│ ├── cli.py # 命令行入口
│ ├── pipelines/
│ │ ├── news_pipeline.py # 流水线 A
│ │ └── article_pipeline.py# 流水线 B
│ └── publishers/
│ └── circler_api.py # 圆圈网 API 客户端
├── scripts/
│ └── setup_scheduled_task.ps1 # 注册每日 08:00 定时任务
├── .env.example
└── README.md
circler_api.py:封装了与圆圈网后台的交互,路径和请求字段均通过.env配置,方便根据实际 API 文档调整。cli.py:提供test-api、daily-news、write-article三个子命令,并支持--dry-run预览模式。- 定时脚本:使用 PowerShell 注册 Windows 计划任务,每天上午 8 点自动执行资讯发布流水线。
快速开始
1. 环境准备
cd d:\python_project\自动更新圆圈网
.\\.venv\Scripts\activate
copy .env.example .env
# 编辑 .env,填入 CIRCLER_API_TOKEN、LLM_API_KEY 等必要配置
2. 测试运行(不调用真实 API)
# 测试 API 连接(预览输出保存到 preview/news/)
python -m src.cli test-api --dry-run
# 模拟抓取并发布 2 条资讯(无 LLM 时使用简易摘要)
python -m src.cli daily-news --dry-run --limit 2
# 模拟生成一篇文章
python -m src.cli write-article --title "ComfyUI 常用快捷键" --category 学习笔记 --dry-run
3. 正式运行
配置好 LLM 密钥和圆圈网 API 后即可去掉 --dry-run:
# 发布今日资讯
python -m src.cli daily-news
# 生成并发布一篇文章
python -m src.cli write-article --title "你的标题" --category 学习笔记
API 对接说明
由于缺少圆圈网的官方 API 文档,circler_api.py 使用通用的路径和字段映射。部署前需根据后台实际接口调整以下配置:
- 在
.env中修改CIRCLER_UPLOAD_PATH、CIRCLER_NEWS_PATH、CIRCLER_ARTICLE_PATH - 设置正确的
CIRCLER_NEWS_CATEGORY_ID和CIRCLER_ARTICLE_CATEGORY_ID - 若请求体字段名不一致,直接编辑
circler_api.py中的payload字典即可
本地验证显示 dry-run 模式工作正常,RSS 采集、摘要生成和预览输出均符合预期。正式运行时,只需确保 LLM Key 和 API Token 均已正确设置。
总结
该项目提供了一个完整的自动化内容发布基座,覆盖从内容获取到发布的整个流程。通过模块化设计和灵活的配置,可以快速适配不同站点的 API,并支持定时任务,真正实现“一次配置,持续运行”。