自定义搜索源规则——JsonPath 与 CSS Query
什么时候需要自定义源
官方在线源仓库里的源是社区维护的,覆盖了最常用的一些资源站。但总有一些情况官方仓库里找不到:
- 发现了一个新的漫画站想接入
- 某个小众网文站在官方仓库里没有
- 想用一个私人维护的、只给过 JSON 文件的搜索源
这时候就需要自定义添加。
自定义源的方式
myacg 支持两种方式添加自定义搜索源:
方式一:本地 JSON 文件导入
- 从社区或朋友那里拿到一份搜索源的 JSON 文件
- 放到手机存储的某个位置
- 打开搜索源管理页 → 右上角选项 →「添加搜索源」→「本地导入」
- 选择那个 JSON 文件即可
方式二:在线订阅链接
有些社区会发布搜索源的在线订阅链接(通常是一个在线 JSON 文件的 URL)。在搜索源管理页选择「添加搜索源」→「订阅搜索源」,粘贴链接就行。
规则语法概述
一条搜索源规则本质上是一个 JSON 对象,包含以下核心部分:
- 源的基本信息:名称、所属品类、图标、描述
- 搜索接口:目标网站的搜索 URL 模板和参数
- 搜索结果解析规则:如何从返回的 HTML/JSON 里提取搜索结果列表(支持 JsonPath 或 CSS Query)
- 详情页解析规则:如何获取作品的封面、简介、作者等信息
- 章节列表解析规则:如何获取该作品的所有章节
- 内容获取规则:获取漫画图片 URL、小说正文、视频播放地址等
支持的解析语法:
- JsonPath:如果目标接口返回 JSON 格式,用 JsonPath 表达式提取字段
- CSS Query:如果返回 HTML,用 CSS 选择器定位元素
规则编写难度
客观说,自己从零写一个搜索源规则需要有一定的网页前端知识:
- 会用浏览器开发者工具查看目标网站的 HTML 结构和网络请求
- 理解 CSS 选择器或 JsonPath 表达式怎么写
- 需要反复测试调试
如果觉得门槛高,不自己写也完全没问题。网上有大量 myacg 用户社区分享的现成搜索源,可以直接导入使用。
社区资源
一些常见的搜索源分享渠道(示例,以社区活跃度为准):
- GitHub 上搜索
myacg source或myacg 搜索源 - 各类 ACG 相关的 QQ 群、Telegram 频道
- 知乎、B站、贴吧上有用户整理的搜索源集合
- 与开源阅读的书源社区类似,部分搜索源可以互相参考
安全性提醒
导入第三方搜索源 JSON 时注意:
- 规则文件本身只是描述怎么访问某个网站的方式,不是可执行代码
- 但它会让 App 去请求对应的目标网站,目标网站如果不安全就有风险
- 建议只导入你信任的来源发布的搜索源
- 如果某个源出现异常行为(自动跳转广告、弹出奇怪页面),立即禁用或删除