问题:每天发一篇,为什么内容越来越重复?
用脚本自动发文,时间长了很容易陷入一个困境:话题就那么几个,翻来覆去写,写到最后自己都不想看了。更糟糕的是,同一个话题隔几天又被脚本随机抽中,发出来跟之前高度相似。
最近帮博客做了一次系统升级,把这个问题彻底解决了。记录一下思路,供有同样困扰的朋友参考。
一、扩大选题池:别让话题”不够用”
很多人选题池就5-10个话题,看似很多,实际上很多话题写法相似(比如”XXX来了”这类新闻标题),去掉之后真正可写的不多。
这次把选题池扩展到32个,分了10个类别:
- Claude / Anthropic 系列(Claude 4、Claude Code 体验)
- AI 协议 / 生态(MCP 协议解读、MCP 工具开发)
- AI Agent 系列(AutoGen、扣子/Coze 平台测评)
- RAG / 本地部署(Ollama、AnythingLLM、向量模型横评)
- 国产大模型(豆包、通义、DeepSeek、文心)
- AI 编程工具(Cursor vs Copilot vs Claude Code)
- 大模型技术原理(上下文窗口、Context Caching、CoT 思维链)
- 硬件评测(手机、游戏掌机)
- 工具与技巧(Perplexity 搜索、AI 笔记工具对比)
- AI 与职业(程序员生存指南、AI 接私活攻略)
分类的好处是:写的时候可以按类别轮着来,不会集中在某一类。
二、选题历史记录:30天不重复同一话题
这是最关键的一步。脚本维护一个历史记录文件(JSON格式),每次发文后把标题和日期记下来。下次选话题时,先查历史,30天内出现过的标题直接跳过。
核心逻辑很简单:
import json
from datetime import datetime, timedelta
HISTORY_FILE = "topic_history.json"
AVOID_DAYS = 30
def load_history():
with open(HISTORY_FILE) as f:
return json.load(f)
def get_recent_titles(history, days=30):
cutoff = (datetime.now() - timedelta(days=days)).strftime("%Y-%m-%d")
return {item["title"] for item in history["posted"] if item["date"] >= cutoff}
def pick_topic(pool, history):
recent = get_recent_titles(history)
available = [t for t in pool if t["title"] not in recent]
if not available:
available = pool # 全部用完了,从头再来
return random.choice(available)
加上这段逻辑之后,脚本就不会再抽到30天内发过的话题了。
三、话题分组(group)标记:防止隐性重复
有时候标题不同,但话题高度相似——比如”Claude 4来了”和”Claude 4实测”其实是同一个话题。
在选题池里给每个话题加一个 group 字段:
{
"title": "Claude 4来了:程序员工作方式将被彻底改变",
"group": "claude",
},
{
"title": "实测一个月Claude Code:它真的能替代我写代码吗?",
"group": "claude", # 同组,不连发
}
配合历史记录双重保险,从根本上杜绝隐性重复。
四、定向发文脚本:手动控制不发错
有时候想主动发一篇特定话题,而不是让脚本随机抽。写了一个简单的定向脚本 publish_one.py:
python3 publish_one.py "Perplexity替代Google搜索?用了3个月后我的真实感受" Perplexity 2026-04-24
传入话题标题、图片关键词、目标日期,直接生成并发布到 WordPress。
五、事后清理:把历史积累的重复帖子删掉
如果博客已经积累了大量重复帖子,可以写一个小脚本批量清理。我的做法是:
- 拉取最近30天所有帖子列表
- 按标题相似度(编辑距离)聚类
- 保留最新一篇,删除其余重复
WordPress REST API 支持直接批量删除:
DELETE https://yoursite.com/wp-json/wp/v2/posts/{id}?force=true
总结
防止自动发文重复,核心就三件事:
- 池子够大:32+个话题,覆盖多个方向
- 记录历史:30天去重,不让同一话题频繁出现
- 定期复盘:积累的重复帖子要主动清理
自动化的本质是省力,但自动化不等于听天由命。偶尔主动干预一下,质量会比纯随机好很多。