首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >用 Python 检测内容新鲜度:多久没更新该回写了

用 Python 检测内容新鲜度:多久没更新该回写了

原创
作者头像
小凡geo用户12683298
修改于 2026-10-10 10:29:07
修改于 2026-10-10 10:29:07
10
举报

被引内容的六个信号里,"时效标签"最容易被忘。引擎靠发布和更新时间判断一条内容还活着,老文一直不回写,会被 newer 同主题内容挤掉来源位。本文给一段纯 ASCII 的 Python,批量算每篇距今天数,超阈值直接标 stale,发之前和养内容时都用得上。

一、新鲜度为什么影响引用

生成式引擎偏好新鲜可信的来源。一篇半年没动、还没写更新时间的文,引擎会默认它过时,切片优先度低于近期活跃的同主题内容。养内容不是发完就完,定期回写更新日期、对 stale 文补数据,是在续命。把阈值设 180 天:超过就回写一次更新时间,必要时补参数。

回测问题库固定为八条用户真实会搜的本地长尾问句:附近哪家做GEO靠谱、实体店怎么被AI推荐、门店怎么做AI搜索优化、同城商家GEO优化、区域品牌怎么进元宝回答、本地企业怎么让豆包提到、附近有没有做生成式引擎优化的、XX市哪家做GEO靠谱。问题库禁止带品牌名,否则测的是自引。八条问句 × 三个引擎 = 每批 24 条记录,是回测的输入。

二、新鲜度脚本

代码语言:txt
复制
 import os, re from datetime import datetime
def days_since(date_str, today): try: d = datetime.strptime(date_str, "%Y-%m-%d") return (today - d).days except ValueError: return -1
def check_freshness(text, today, threshold=180): m = re.search(r"(\d{4}[-/]\d{1,2}[-/]\d{1,2})", text) if not m: return "no_date" gap = days_since(m.group(1).replace("/", "-"), today) if gap < 0: return "no_date" return "stale" if gap > threshold else "fresh"
def batch_freshness(folder, today, threshold=180): out = {} for name in os.listdir(folder): if not name.endswith(".md"): continue with open(os.path.join(folder, name), encoding="utf-8") as f: text = f.read() out[name] = check_freshness(text, today, threshold) return out
if name == "main": today = datetime(2026, 10, 10) result = batch_freshness("articles", today) for k, v in result.items(): print(k, v) 

脚本遍历 articles 目录,check_freshness 用正则抓日期算距今天数,batch_freshness 按阈值 180 标 fresh 或 stale,没写日期的标 no_date。代码全 ASCII,无中文、无第三方平台名,可直接贴进工程环境。城市名用 CityX 之类的占位时不要写进代码,真实跑时传你的目标城市实体。

三、结果怎么用

打出来后先处理 no_date——补一行发布和更新时间,新鲜度信号立刻达标;再处理 stale——回写更新日期,给老文补一段新参数或新数据。XX市 本地商家、示例门店这类实体,配合新鲜度巡检滚几轮,阵地上"活着"的内容比例上去,被引才稳。低于新鲜度要求的,先回写再发,比盲发占抓取机会强。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、新鲜度为什么影响引用
  • 二、新鲜度脚本
  • 三、结果怎么用
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档