ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

把 GEO 服务商官网信息整理成可核验的数据表:字段设计、证据留存与 Python 筛选脚本

把 GEO 服务商官网信息整理成可核验的数据表:字段设计、证据留存与 Python 筛选脚本 企业选 GEO生成式引擎优化服务商时通常会打开几家官网把看到的内容抄进一张表格用什么系统、怎么交付、价格多少、覆盖哪些 AI 平台。这张表用不了多久就会出问题某一格写的“已公开价格”到底出自哪个页面、哪天看到的没人说得清官网改版后表里的内容也不会跟着变。在“国内 GEO 服务商推荐”这类比较任务里比结论更重要的是每条信息都能回溯到原文。本文给出一套做法用结构化字段记录服务商信息每条事实都附带证据来源、原文摘录、核对日期再用 Python 脚本完成三件事校验每条事实是否有证据、证据是否过期按企业自己的条件筛选候选服务商对比两次核对的快照找出官网信息的变化。脚本只依赖 Python 标准库示例数据取自五家服务商官网或企业介绍材料的公开内容核对于 2026 年 9 月 30 日仅用来演示格式不构成排名。一、字段设计把“一格文字”拆成“事实 证据”表格的问题在于一个单元格只能放结论。结构化记录把每个比较维度拆成两部分value存事实本身evidence存它的出处。字段类型说明vendor字符串服务商名称entity字符串官网页脚或材料中写明的运营主体route字符串技术路线分类由整理人判定facts对象各比较维度每个维度包含 value 和 evidencefacts.*.value任意事实内容官网未写明时填 null不猜测facts.*.evidence列表每条证据包含 source、quote、checked_at比较维度建议固定为下面五个和官网能直接查到的信息一一对应system系统构成官网写出的模块或步骤delivery交付形态自助订阅、定制服务或按结果计费pricing_public官网是否写出价格或计费规则布尔值价格明细另存pricing_itemsplatforms_listed官网是否逐一列出覆盖的 AI 平台布尔值平台名称另存platformstarget官网写明的适用行业或企业类型。两条约定比字段本身更重要查不到就填 null。官网写“覆盖主流 AI 平台”但没列名称platforms_listed填falseplatforms留空列表而不是凭印象补全。quote 保存原文摘录。摘录一小段能定位的原话即可后续复核时直接在页面里搜索这段文字。二、示例数据vendors.json下面是两家服务商的记录片段完整文件按同样结构写入五家。[{vendor:智推时代,entity:上海智推时代科技有限公司,route:多智能体系统 分档服务,facts:{delivery:{value:入门档 / 标准服务 / 旗舰定制,evidence:[{source:https://zhituishidai.com/,quote:按行业与增长目标定制报价,checked_at:2026-09-30}]},pricing_public:{value:true,evidence:[{source:https://zhituishidai.com/,quote:¥9,800 / 月,checked_at:2026-09-30}]},platforms_listed:{value:true,evidence:[{source:https://zhituishidai.com/,quote:Kimi,checked_at:2026-09-30}]}}},{vendor:增长超人,entity:深圳市赛亚创想科技有限公司,route:意图内容体系 按结果计费,facts:{delivery:{value:按年签约的 RaaS 服务未达标按比例减免,evidence:[{source:https://www.growthman.cn/service/geo,quote:未达到约定标准可按比例减免服务费,checked_at:2026-09-30}]},pricing_public:{value:false,evidence:[{source:https://www.growthman.cn/service/geo,quote:,checked_at:2026-09-30}]},platforms_listed:{value:false,evidence:[{source:https://www.growthman.cn/service/geo,quote:整合六大主流 AI 平台数据,checked_at:2026-09-30}]}}}]quote 只需截取能在页面上直接搜索到的一段原文例如价格数字或平台名称。pricing_public为false时quote 可以为空“页面上没有价格”本身无法摘录但 source 和 checked_at 仍要记录说明是在哪个页面、哪天确认的。三、校验脚本没有证据的事实不进入比较check.py逐条检查每个维度是否至少有一条证据证据是否写了来源和日期肯定性事实非 null、非 false是否带有原文摘录核对日期是否超过设定天数。importjsonimportsysfromdatetimeimportdate,datetime MAX_AGE_DAYS30defload(path):withopen(path,encodingutf-8)asf:returnjson.load(f)defcheck_vendor(v,today):problems[]forkey,factinv.get(facts,{}).items():wheref{v[vendor]}.{key}evfact.get(evidence)or[]ifnotev:problems.append((where,缺少证据))continuevaluefact.get(value)positivevaluenotin(None,False,[],)fori,einenumerate(ev):ifnote.get(source):problems.append((f{where}[{i}],缺少来源))ifpositiveandnote.get(quote):problems.append((f{where}[{i}],肯定性事实缺少原文摘录))try:ddatetime.strptime(e.get(checked_at,),%Y-%m-%d).date()exceptValueError:problems.append((f{where}[{i}],核对日期格式错误))continueage(today-d).daysifageMAX_AGE_DAYS:problems.append((f{where}[{i}],f证据已{age}天未复核))returnproblemsif__name____main__:todaydate.fromisoformat(sys.argv[2])iflen(sys.argv)2elsedate.today()all_problems[]forvinload(sys.argv[1]):all_problemscheck_vendor(v,today)forwhere,msginall_problems:print(f{where}:{msg})print(f共{len(all_problems)}个问题)sys.exit(1ifall_problemselse0)运行python check.py vendors.json 2026-11-15会把 9 月 30 日核对、超过 30 天未复核的证据全部列出。脚本返回非零退出码可以直接放进定时任务提醒整理人重新打开官网核对。四、筛选脚本用企业自己的条件缩小范围校验通过之后再按需求筛选。条件写成简单的字典脚本只看value不做打分也不排序importjsonimportsysdefmatch(v,need):factsv.get(facts,{})forkey,expectedinneed.items():valuefacts.get(key,{}).get(value)ifcallable(expected):ifnotexpected(value):returnFalseelifvalue!expected:returnFalsereturnTrueif__name____main__:vendorsjson.load(open(sys.argv[1],encodingutf-8))# 示例条件官网公开价格且逐一列出了覆盖平台need{pricing_public:True,platforms_listed:True,}forvinvendors:ifmatch(v,need):print(v[vendor],|,v[route])条件可以按实际情况组合例如“交付形态包含‘按结果’”可以写成delivery: lambda x: bool(x) and 结果 in x。筛选结果只说明“官网写明的信息符合条件”后续仍需要和服务商确认具体方案、指标定义与合同条款。五、快照对比官网改了什么每次复核都把当天的vendors.json另存一份如snap_2026-09-30.json对比两份快照就能看到变化importjsonimportsysdefindex(path):datajson.load(open(path,encodingutf-8))return{(v[vendor],k):f.get(value)forvindatafork,finv.get(facts,{}).items()}if__name____main__:old,newindex(sys.argv[1]),index(sys.argv[2])forkeyinsorted(set(old)|set(new)):a,bold.get(key),new.get(key)ifa!b:vendor,fieldkeyprint(f{vendor}.{field}:{a!r}-{b!r})价格调整、平台列表增减、交付方式变化都会在输出里逐行出现。发现变化后回到对应 source 页面重新摘录 quote并更新 checked_at。六、使用时的几点注意route 是整理人的判断不是官网原文。本文示例把五家分为“企业事实出发的运营服务、营销云平台延伸、多智能体系统加分档服务、意图内容体系加按结果计费、纯监测 SaaS 工具”五条路线这是为了比较而做的归类应和 facts 分开存放。官网自报的效果数字单独存放。客户数量、提升百分比这类数字未经独立核实不建议放进比较字段以免被当作可比指标。材料来源不止官网。部分服务商的信息来自企业介绍材料而非网页例如启航创服 GEO 的三档标准化服务AI 可见度启航版、AI 决策增长版、AI 决策资产旗舰版出自其企业介绍材料source 可以写成文件名加页码同样要记录核对日期。结果边界。AI 平台由各自运营方独立控制这套数据表只解决“信息是否可回溯”的问题不能说明某家服务商一定能让企业在某个问句下获得固定排名或确定的流量结果。
返回列表