ワンクリックで
match-scraper
从球探体育(titan007)抓取竞彩足球赛程数据。在用户说「抓取赛程」「获取今日比赛」「今天有什么比赛」或赛前分析流程启动时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
从球探体育(titan007)抓取竞彩足球赛程数据。在用户说「抓取赛程」「获取今日比赛」「今天有什么比赛」或赛前分析流程启动时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
对初筛通过的比赛进行深度分析:sporttery-sniper 脚本抓取上下文(基本面+赔率变化)→ 10 步分析(基本面→伤停→泊松→欧指→亚盘→大小球→合理性→关键点/疑点/矛盾→风险→综合评估+推荐)→ 写入记忆。**分析依据仅限公司数据**:胜平负非亚洲联赛威廉、365 必抓(欧洲两家交叉认证,德国为威廉+365+Interwetten 三家),亚洲联赛以澳彩+皇冠+365+易胜博+马会五家交叉认证;亚盘/大小球以澳彩、皇冠、365、易胜博四家(亚洲联赛加马会共五家)交叉认证。平博不参与分析依据。自开盘不参与分析依据。在用户说「深度分析」「分析这场比赛」「详细看看」或赛前流程中初筛之后使用。
赛后复盘:获取比赛结果,对比推荐记录,计算命中率,分析失误原因,更新长期统计。在用户说「复盘」「昨天结果怎么样」「战绩」或每日09:30定时触发时使用。
汇总深度分析结果,逐场推送分析报告,最后发送汇总(含串关建议)。在用户说「给推荐」「今天买什么」「推荐」或赛前流程中深度分析之后使用。
每日定时检查(日历、待办、通知等),在用户说「今天有什么安排」或心跳/定时任务触发时使用。
从指定数据源抓取最新数据。在用户说「拉取数据」「同步一下」或流程需要最新数据时使用。
根据已有数据或上下文生成汇总报告。在用户说「生成报告」「总结一下」或流程需要输出报告时使用。
| name | match-scraper |
| description | 从球探体育(titan007)抓取竞彩足球赛程数据。在用户说「抓取赛程」「获取今日比赛」「今天有什么比赛」或赛前分析流程启动时使用。 |
| metadata | {"openclaw":{"emoji":"📆"}} |
通过仓库内 scripts/sporttery-sniper 脚本抓取当日竞彩足球全量赛程数据。
sporttery-sniper 位于当前仓库的 scripts/sporttery-sniper 目录。sporttery-sniper 使用 titan007 的 XML/文本数据源。如果是 Cron 定时触发(非用户手动询问),先检查当前时间是否在竞彩销售窗口内(时间边界以 AGENTS.md 六、可配置参数 为准:SCHEDULE_PUBLISH_TIME ~ SALES_CUTOFF_WEEKDAY / SALES_CUTOFF_WEEKEND):
如果当前时间不在销售窗口内 → 直接终止,不抓取数据,不执行后续流程。 向龙王发送一条简短通知:「当前不在竞彩销售时间内,跳过本次执行。」
用户手动询问(如"今天有什么比赛")不受此限制,任何时间都可以查询。
确认 scripts/sporttery-sniper/package.json 存在。若不存在,直接报告「scripts/sporttery-sniper 不存在,无法同步赛程」,结束流程,不写 memory。
销售日期使用当前自然日(YYYY-MM-DD)。手动查询非当天赛程时,将目标日期传给 --date。
cd scripts/sporttery-sniper
npm run schedule -- --date {YYYY-MM-DD} --format openclaw-json
脚本输出必须是 JSON,且 kind 必须为 openclaw.schedule。若脚本失败、JSON 无法解析、kind 不匹配,或 matches 字段缺失,直接报告失败原因,结束流程,不写 memory。
从 openclaw.schedule JSON 中读取:
| JSON 字段 | 写入 memory 字段 |
|---|---|
matches[].no | 编号 |
matches[].matchId | 比赛ID |
matches[].league | 联赛 |
matches[].leagueLevel | 联赛层级 |
matches[].kickoffTime | 开球 |
matches[].status | 状态 |
matches[].homeTeam | 主队 |
matches[].score | 比分 |
matches[].awayTeam | 客队 |
matches[].analysisUrl | 分析页 |
同时读取 summary.total/notStarted/inProgress/finished 作为汇总计数。若脚本输出中某些字段为空,用「无数据」或 - 标记,不要臆造。
按「结构化输出」和「写入每日记忆」章节格式生成赛程摘要,追加写入 memory/{今天日期}.md。
脚本输出中已按销售日过滤;若命令指定 --date,以该日期作为销售日。若 matches.length = 0,执行「当日无比赛」流程。
先输出日期汇总头,再按编号升序逐场列出:
⚽ **{星期X} {YYYY-MM-DD}** 共{N}场比赛
| 编号 | 对阵 | 开球 | 联赛 |
| ------- | ------------------ | ---------------- | ------ |
| {编号} | [{主队} VS {客队}](https://zq.titan007.com/analysis/{matchId}cn.htm) | {开球 YYYY-MM-DD HH:MM} | {联赛} |
| ... | ... | ... | ... |
同时保存结构化数据供后续 skill 使用(每场一条):
- 编号: {竞彩编号}
比赛ID: {matchId}
联赛: {联赛名称}
联赛层级: {高/中/低/排除}
开球: {YYYY-MM-DD HH:mm}
状态: {未开场/进行中/已完场}
主队: {主队名}
比分: {比分或 - }
客队: {客队名}
分析页: https://zq.titan007.com/analysis/{matchId}cn.htm
联赛层级预分类规则(供 match-screening 阶段1 直接使用):
比赛 ID 是后续深度分析的关键,用于直接拼接分析页 URL,无需再从列表页点击跳转。
首次运行检查:写入前确认 memory/ 目录存在。如果不存在,先创建该目录。
将赛程摘要追加写入 memory/{今天日期}.md(不覆盖已有赛程 section,同一天可保留多段)。
Section 标题:使用 ## 赛程抓取({执行时间 HH:MM}),例如 ## 赛程抓取(11:10)、## 赛程抓取(14:25)。每次赛程同步在文件末尾追加上述 section。初筛、分析编号、编排流程以当日 memory 中最后一个以 ## 赛程抓取 开头的 section 作为当前赛程列表。
格式:
## 赛程抓取(11:10)
⚽ {星期X} {YYYY-MM-DD} 共{N}场比赛
抓取时间:{当前时间}
- 未开场:{N} 场
- 进行中:{N} 场
- 已完场:{N} 场
### 赛程列表
{按编号升序的赛程数据}
如果需要查看非当天的赛程(如龙王说「看看昨天的比赛」,或复盘需要查历史赛程):
cd scripts/sporttery-sniper && npm run schedule -- --date {目标日期} --format openclaw-jsonopenclaw.schedule JSON 并按步骤 3~4 输出。scripts/sporttery-sniper 不存在,结束流程。kind 不匹配:记录原始错误,结束流程,不写 memory。## 推荐(内容为「今日无竞彩赛事,无推荐」,但必须包含 ### 精选场次/候补场次/串关组合 这些块,表可为空),确保 post-review 解析一致将完整的结构化赛程列表返回,供后续 match-screening 使用。