wh40k-11e-mfm
收藏资源简介:
该数据集从官方战锤40,000 Munitorum Field Manual网站抓取,并转换为干净、版本化的YAML格式,跟踪点数随时间的变化。数据集包含每个派系的可读文件,存储在data/目录中,并通过Git历史记录精确追踪每个点数变更。
This dataset was scraped from the official Warhammer 40,000 Munitorum Field Manual website, converted into a clean, versioned YAML format to track changes in point values over time, includes human-readable files for each faction stored in the data/ directory, and precisely tracks every point value alteration through its Git history.
数据集概述
这是一个非官方的 Warhammer 40,000 Munitorum Field Manual 数据抓取与整理项目,专注于将官方在线版军备手册中的分值数据提取为结构化的 YAML 文件,并记录分值的历史变更。
核心特性
- 数据集格式:每个阵营对应一个独立文件,位于
data/目录下,文件为人类可读的 YAML 格式。 - 变更追踪:利用 Git 的
git log -p data/精确记录每次分值变动。当 Games Workshop 更新手册时,自动化任务会生成变更日志并提交 Pull Request。
数据获取方式
- 主要数据通过 HTTP GET 请求和 HTML 解析(使用 cheerio 库)获取,因为大多数数据是服务端渲染的。
- Legends 单位及可展开的 "Welcome…" 注释依赖客户端渲染,需通过 Playwright 无头浏览器捕获。可通过
--no-legends参数跳过此步骤。
运行方式
| 命令 | 说明 |
|---|---|
pnpm scrape --faction necrons |
抓取单个阵营(如 necrons) |
pnpm scrape --no-legends |
仅 HTTP 快速抓取(不加载浏览器) |
pnpm scrape |
完整抓取所有阵营(包含 Legends 和注释) |
数据质量保障
- 抓取结果通过 zod 模式验证(
src/model.ts)后才写入文件。 - 解析器基于真实页面快照进行测试(
test/fixtures/),网站变更会在 CI 中捕获。 - 每日通过 GitHub Action 重新抓取,发现变更时自动创建 PR,解析失败时自动提交 Issue。
技术栈
TypeScript (Node 22, ESM) · cheerio · zod · yaml · Vitest · Biome · pnpm
维护参考
- 项目结构与命令:参见
AGENTS.md - 数据合约:参见
specs/目录 - 操作手册:参见
.agents/playbooks/目录(尤其是抓取失败时的处理流程)
法律声明
非官方项目。Warhammer 40,000 及 Munitorum Field Manual 版权归 Games Workshop 所有。本项目仅对公开可获取的分值数据进行格式化整理,供个人/社区参考,与 Games Workshop 无关联或认可关系。





