本文记录了一个基于 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,并支持定时任务,真正实现“一次配置,持续运行”。