微信小店体验分自动巡检

SKILL效率
效率 未标注权限 许可证不明确
安装这个技能

微信小店后台自动化助手:扫码登录后保存登录态,每日自动抓取店铺体验分与各商品好评率,与昨日数据对比生成日报并推送飞书群,好评率低于阈值自动预警。支持多店铺、定时全自动运行。

一句话选型结论

按资料字段整理

微信小店体验分自动巡检是效率类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_f4edad4f/weixinxiaodiantiyanfen
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_f4edad4f仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791730778
正文体量9.8 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
微信小店体验分自动巡检当前 未标注权限 未标注 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

9.8 KB
模型实际读到的说明书原文,来自技能仓库

微信小店登录态 + 每日好评率巡检(Playwright 人机协作方案)

脚本全部在本技能目录的 scripts/ 下,与技能同处一目录、可整体拷贝到任意机器。

环境前提

  • Node.js(WorkBuddy 托管版:<用户目录>/.workbuddy/binaries/node/versions/<版本>/node.exe)
  • Playwright 装在 <用户目录>/.workbuddy/binaries/node/workspace/node_modules。脚本内置 loadPlaywright():先常规 require('playwright'),失败则按 os.homedir() 推导托管路径回退,不写死用户名。
  • 用 channel: 'chrome' 驱动本机 Chrome(或 'msedge'),不依赖下载的 Chromium。

关键结论(踩坑总结,勿重蹈覆辙)

  1. 不要用 URL 判定登录:小店后台是单页应用,登录页是 store.weixin.qq.com/shop/home,登录后 URL 几乎不变。waitForURL('**/shop/**') 会在打开登录页瞬间误判成功(登录页 URL 本身就含 /shop/)。waitForURL('**/shop/home**') 同理必翻车。
  2. 不要用 biz_ticket cookie 判定:实测登录成功后它仍为空字符串。登录态体现在 biz_token 值更新 + localStorage(登录后 localStorage 从 3 个 key 增到 11 个)。
  3. 不要用状态快照对比:页面 localStorage 持续被埋点/AEGIS 写入,基准快照永远"不稳定",必然误判。
  4. 后台长驻进程必须用 run_in_background:Git Bash 里 nohup node ... & 会在工具命令结束时被杀(脚本看似启动,几十秒后悄悄死掉)。
  5. storageState 不包含 sessionStorage;auth_*.json 含敏感登录凭据,勿外传。

最终可用流程(已验证)

  1. scripts/save-auth.js(人机协作):
    - chromium.launch({ headless: false, channel: 'chrome' }) 打开登录页
    - 循环:每 2 秒轮询;每 5 次轮询存 debug[_店铺名].png 截图(取 context.pages() 最后一个标签页)
    - 绝不自动判定退出;只有当脚本目录出现 SAVE_NOW[_店铺名] 文件时才 context.storageState() 保存并退出
    - 浏览器被手动关闭时报友好错误
  2. 助手流程:运行脚本(run_in_background)→ 用户扫码并在手机上点选账号确认 → 用户说"进后台了" → 助手 Read 截图确认是后台界面且店铺名与目标一致 → 创建 SAVE_NOW[_店铺名] 触发保存 → 任务输出确认 "登录态已成功保存"
  3. 验证(scripts/verify-auth.js):newContext({ storageState }) 无头打开 /shop/home,截图确认免登录进入后台首页(能看到店铺名与经营数据)即有效。

页面结构要点(做数据提取必读)

  • 小店后台是微前端(micro-app)架构:外层文档只有菜单栏(~106 字符),主体内容渲染在 micro-app 自定义元素的 Shadow DOM 里(内容区标签 MICRO-APP-BODY)。
  • 提取文本必须递归穿透 shadow:收集 document + 所有 shadowRoot(含嵌套),对每个文档查 innerText。用 innerText(可见文本),不要用 textContent——shadow 里 STYLE 标签会让 textContent 泄漏数十万字符 CSS。
  • 好评率在"店铺体验分"详情(/shop/setting/rate2):点击首页"店铺体验分"卡片进入。文本形如 商品好评率 86.46% 较前1日-1.71% 超越 62.31% 同行——好评率 = 紧跟关键词后的百分数;后一个 62.31% 是"超越同行"参考值,勿误取。
  • 商品级明细:rate2 页点 div.card.green 内"商品好评率"→ /shop/setting/ratedetail?type=product&key=proValidGoodEvalRatio。表格真实表头:商品信息 | 「挺好的」评价数 | 好评率 | 「不够好」评价数 | 首位「不够好」原因(5 列,别按 6 列硬编码)。
  • 日期选择器也是 <table>(表头 日一二三四五六 + 1-30 数字),盲抓 table tbody tr 会混入日历垃圾 → 必须选表头含"好评/商品"的目标表格,并按表头名动态映射列号。
  • 点击 shadow 内元素:page.evaluate 里递归找含目标文本且 innerText 最短的元素再 .click();Playwright 标准选择器可穿透开放 shadow,但日历干扰/嵌套复杂时用 JS 递归穿透兜底。
  • 新店可能无数据:平台要求近 30 天有效支付订单 ≥ 10 单才生成体验分/好评率,否则显示"暂无评分/暂无数据",点卡片不跳转——属正常,不要当脚本故障。

为什么不用官方 API(已验证,勿重复研究)

  • 微信小店官方 API 没有店铺体验分 / 商品好评率 / 品质退款率接口。罗盘商家版(channels/ec/compass/*)只提供:电商数据概览、店铺人群画像、商品列表与单品数据、带货达人数据、直播数据,且全部为 T+1 成交/退款/流量类指标。
  • 官方社区答复原文:"目前没有相关接口,商家罗盘 API 那里就是全部了。"
  • 因此本技能必须走后台页面抓取。若将来官方开放评价类接口,只需替换 daily-task.js 中"进入 rate2 页 → 抓表"这一段,其余(对比/飞书/多店铺/定时)可复用。
  • ⚠️ 数据时效:体验分每天中午 12:00 更新且更新需时间。定时任务请安排在 13:00 之后,不要卡在 12:00–12:15,否则易抓到 T-2 旧值,表现为"较昨日 →0.00"。

相关文件与多店铺参数化

  • scripts/save-auth.js、scripts/daily-task.js、scripts/verify-auth.js、scripts/run-daily.sh、scripts/config.json
  • 统一入口 scripts/run-daily.sh:运行时自动定位 node(PATH 优先,其次扫 ~/.workbuddy/binaries/node/versions/*/)并设置 NODE_PATH,规避"托管 Node 版本目录变化导致写死的绝对路径失效"问题——定时任务里只写 bash run-daily.sh [店铺名],不要写死 node 绝对路径(实测该目录从 22.22.2-2 变成过 22.22.2-3,写死的任务会全部失败)。bash run-daily.sh --check 只检查环境不抓数据。
  • 多店铺:node save-auth.js 店铺B → auth_店铺B.json(截图 debug_店铺B.png、触发 SAVE_NOW_店铺B);node daily-task.js 店铺B → 读 auth_店铺B.json,输出 goods_rates_店铺B.json;无参数 = 默认店铺(auth.json / goods_rates.json)。若某店铺入口 URL 不同,在 daily-task.js 顶部 SHOP_HOME_URL 映射里加。
  • 定时巡检建议每家店一条 automation、错开 5 分钟,名称统一 微信小店日报-{店铺名}。注意默认店铺那条不要带参数(否则会去找不存在的 auth_店铺名.json)。

飞书通知(daily-task.js)

  • Webhook 从 scripts/config.json 的 feishuWebhook 读取(环境变量 FEISHU_WEBHOOK_URL 优先);为空则跳过推送、只在控制台打印预览,不要把 webhook 硬编码进脚本。
  • 每次运行无论是否预警都发日报;商品列表为空或脚本异常时发"❌ 抓取失败"错误通知。空列表需区分新店暂无评分(正常)与页面加载失败。
  • 消息用 msg_type=post 富文本:content.post.zh_cn.content = 行数组,每行 = [{tag:'text',text}]。post 不支持 Markdown 加粗(** 会原样显示),消息文本禁用 **。sendFeishuMessage(lines) 参数为字符串数组。
  • 精简格式:📊 店名 MM-DD;体验分 4.80 ↑0.02 | 好评率 86.46% ↓0.34%;① 刺梨原液 ¥19.9 85.71% ↓1.29% ⚠️;末尾 ⚠️ 预警:刺梨原液 85.71% 低于90%(预警行无价格无变化值)。
  • 商品简称 shortName():去 [xxx] 促销前缀,正则匹配第一个"刺梨+品类词"+ ¥价格;无关键词时 ≤12 字原名、否则前 8 字 + ...。
  • fmtChange(diff, unit):↑0.02 / ↓0.31% / →0.00(紧贴无空格);体验分不带 %、好评率带 %;无历史数据不显示变化。
  • 体验分在首页卡片/rate2 页匹配"店铺体验分 4.80"形态抓取,存 result.experienceScore。

历史对比(与前一天对比)

  • 每天存快照 history/店铺名_YYYY-MM-DD.json(date/shopName/shopScore/overallRate/goodsRates[{name, rate 数字}]),运行时读"昨天"文件做对比。
  • ⚠️ 同名商品必须用队列配对:normName 会去掉 [T]/[年中慧] 等促销前缀,同一店铺的两个"刺梨原液"会归一化成同一 key。若用 Map.set 建索引会被后者覆盖 → 对比基准取错商品(实测把 85.58% 错配到 100%,得出"↓14.42%",正确应为 ↓0.13%)。正确做法:prevQueues = Map<key, 数组>,当前商品按出现顺序 shift() 一一消费;配对后队列剩余总数 = 下架数量。
  • 今日有昨日无 → 标(新商品);昨日有今日无 → 行末提示"较昨日下架 N 个商品";首日无昨日文件 → "首日记录,无历史对比数据"。
  • ⚠️ 对比基准是昨天文件:同一天跑两次不产生对比(当天快照被覆盖)。要测"较昨日"效果需手工造一份昨日文件。

常见问题

5 问
答案由本站依据条目字段整理
微信小店体验分自动巡检怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_f4edad4f/weixinxiaodiantiyanfen。安装方式为未标注。装完刷新技能列表或重开客户端。

微信小店体验分自动巡检支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

微信小店体验分自动巡检权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

微信小店体验分自动巡检收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

微信小店体验分自动巡检用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。