Kazumi XPath规则编写完整教程:从入门到精通

1266 字
6 分钟
Kazumi XPath规则编写完整教程:从入门到精通

一、基础概念解析#

什么是 Kazumi 规则?#

Kazumi 规则是一套基于 JSON 格式的配置文件,用于定义如何从特定网站采集番剧资源。它采用 XPath 选择器语法,让用户无需编写复杂代码,就能快速构建自定义的视频源适配方案。每条规则最多使用五行 XPath 选择器,即可完成从搜索、列表解析到播放链接提取的完整流程。

核心价值与应用场景#

核心价值:资源聚合(整合多平台番剧)、个性化定制(添加特定视频源)、社区共享(规则可导出分享)。

典型场景:添加新番剧网站作为视频源、适配网站改版后的页面结构、创建特定内容的专用采集规则。

二、环境准备#

开发工具#

表格

工具用途
文本编辑器编写 JSON 规则文件(推荐 VS Code)
浏览器开发者工具分析网页结构、测试 XPath
Kazumi 客户端测试规则效果

前置知识#

  • JSON 基础:理解对象、数组、键值对结构

  • XPath 语法:路径表达式、谓词、属性选择

  • HTML 结构:DOM 树、标签、class/id 定位

⚠️ 重要限制:Kazumi 当前仅支持以 // 开头的 XPath 选择器。

XPath 核心语法速查

表格

表达式说明示例
//任意层级查找//div 查找所有 div
@选择属性//img/@src
条件筛选//div[@class=‘list’]
text()文本内容//h3/text()

三、核心语法详解#

规则文件结构#

{
"api": "3",
"type": "anime",
"name": "规则名称",
"version": "1.0",
"muliSources": true,
"useWebview": true,
"useNativePlayer": true,
"userAgent": "",
"baseURL": "https://example.com/",
"searchURL": "https://example.com/search?wd=@keyword",
"searchList": "//div[@class='result-list']/div",
"searchName": ".//h3/a/text()",
"searchResult": ".//h3/a/@href",
"chapterRoads": "//ul[@class='episode-list']",
"chapterResult": ".//li/a"
}

关键字段说明#

基础字段: api(API 版本)、 type(固定为 anime)、 name(规则名称)、 version(版本号)

行为控制字段

  • useWebview:使用 WebView 渲染页面

  • useNativePlayer:使用内置播放器(无法播放时可设为 false)

  • adBlocker:HLS 广告过滤(API Level 5+)

数据提取字段

  • baseURL:网站基础地址

  • searchURL:搜索 URL, @keyword 为关键词占位符

  • searchList:搜索结果容器选择器

  • searchName:番剧名称(相对路径)

  • searchResult:详情页链接(相对路径)

  • chapterRoads:章节列表容器

  • chapterResult:播放链接(相对路径)

API Level 选择指南#

表格

API Level功能特性
1基础搜索与播放
2支持 POST 请求
3支持 Referer、传统解析器(推荐)
5HLS 广告过滤

四、规则编写流程#

以实际案例演示完整开发流程。

步骤一:分析网页结构#

访问目标网站,使用浏览器开发者工具(F12)分析:

  1. 搜索 URL 模式

  2. 搜索结果列表的 HTML 结构

  3. 详情页章节列表结构

步骤二:编写选择器#

在 Console 中使用 $x(“//your-xpath”) 测试:

// 测试搜索结果列表
$x("//div[@class='search-results']/div")
// 测试名称提取
$x("//div[@class='search-results']/div[1]//h3/text()")

步骤三:组装规则文件#

{
"api": "3",
"type": "anime",
"name": "示例动漫站",
"version": "1.0",
"useWebview": true,
"useNativePlayer": true,
"baseURL": "https://example-anime.com/",
"searchURL": "https://example-anime.com/search?q=@keyword",
"searchList": "//div[@class='search-results']/div[@class='item']",
"searchName": ".//h3/text()",
"searchResult": ".//a/@href",
"chapterRoads": "//ul[@class='episode-list']",
"chapterResult": ".//li/a"
}

步骤四:测试验证#

在 Kazumi 中导入规则,依次测试搜索、详情页、播放功能。

五、高级技巧与最佳实践#

反爬虫配置#

针对有验证码的网站:

{
"antiCrawlerConfig": {
"enabled": true,
"captchaType": 1,
"captchaImage": "//img[@class='verify-img']",
"captchaInput": "//input[@class='verify-input']",
"captchaButton": "//button[@class='verify-btn']"
}
}

常见问题排查#

表格

问题原因解决方案
搜索无结果选择器错误浏览器测试 $x()
无法播放播放器不兼容useNativePlayer: false
规则失效网站改版更新选择器

最佳实践#

  1. 选择器健壮性:优先使用 contains() 匹配 class

  2. 版本管理:每次修改更新 version 字段

  3. 多源支持: muliSources: true 配合分组选择器

六、实战案例分析#

案例一:基础规则(API Level 1)#

{
"api": "1",
"type": "anime",
"name": "AGE动漫",
"version": "1.5",
"muliSources": true,
"useWebview": true,
"useNativePlayer": true,
"baseURL": "https://www.agedm.io/",
"searchURL": "https://www.agedm.io/search?query=@keyword",
"searchList": "//div[2]/div/section/div/div/div/div",
"searchName": "//div/div[2]/h5/a",
"searchResult": "//div/div[2]/h5/a",
"chapterRoads": "//div[2]/div/section/div/div[2]/div[2]/div[2]/div",
"chapterResult": "//ul/li/a"
}

特点:结构简洁,适合标准化网站,多源支持处理不同播放线路。

案例二:广告过滤规则(API Level 5)#

{
"api": "5",
"type": "anime",
"name": "DM84",
"version": "1.4",
"muliSources": true,
"useWebview": true,
"useNativePlayer": true,
"adBlocker": true,
"baseURL": "https://dmbus.cc/",
"searchURL": "https://dmbus.cc/s----------.html?wd=@keyword",
"searchList": "//div/div[3]/ul/li",
"searchName": "//div/a[2]",
"searchResult": "//div/a[2]",
"chapterRoads": "//div/div[4]/div/ul",
"chapterResult": "//li/a"
}

特点:启用 adBlocker 过滤 HLS 广告,选择器路径简洁高效。

案例三:反爬虫规则(API Level 6)#

{
"api": "6",
"type": "anime",
"name": "xfdm",
"version": "2.0",
"muliSources": true,
"useWebview": true,
"useNativePlayer": true,
"useLegacyParser": true,
"baseURL": "https://dm.xifanacg.com/",
"searchURL": "https://dm.xifanacg.com/search.html?wd=@keyword",
"searchList": "//div[@class='vod-detail style-detail cor4 search-list']",
"searchName": "//div/div[2]/a/h3",
"searchResult": "//div/div[2]/a",
"chapterRoads": "//ul[@class='anthology-list-play size']",
"chapterResult": "//li/a",
"antiCrawlerConfig": {
"enabled": true,
"captchaType": 1,
"captchaImage": "//img[@class='ds-verify-img']",
"captchaInput": "//div[4]/div[2]/div/div/input",
"captchaButton": "//div[4]/div[2]/button"
}
}

特点:完整反爬虫配置,自动处理图片验证码,传统解析器提升兼容性。

七、扩展资源#

官方资源#

表格

资源链接
Kazumi 官网https://kazumi.app
官方文档https://kazumi.app/docs
规则仓库https://github.com/Predidit/KazumiRules
主项目https://github.com/Predidit/Kazumi

学习路径建议#

入门:阅读现有规则 → 浏览器练习 XPath → 修改规则实验

进阶:独立编写新规则 → 学习反爬虫配置 → 提交社区贡献

贡献指南#

向 KazumiRules 提交规则:Fork 仓库 → 创建 JSON 文件 → 本地测试 → 提交 Pull Request注意:不要手动修改 index.json,该文件会在 PR 合并后自动更新。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Kazumi XPath规则编写完整教程:从入门到精通
https://www.kshare.top/posts/kazumi-xpath规则编写完整教程从入门到精通/
作者
Kshare
发布于
2026-04-05
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Kshare
Hello, I'm Kshare.
公告
欢迎来到Kshare站点!近期站点进行升级,欢迎访问和收藏站点!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
137
分类
12
标签
59
总字数
333,011
运行时长
0
最后活动
0 天前

文章目录