阅读Sigma书源规则完全指南XPath、JsonPath、正则与JS四大引擎详解【免费下载链接】legado-E阅读Sigma是legado的继承保持开源免费延续开源精神。项目地址: https://gitcode.com/gh_mirrors/legado2/legado-E阅读Sigma是一款开源免费的Android阅读App书源规则是它最核心的能力之一。本文带你从零搞懂规则标志的写法并详解XPath、JsonPath、正则、JS四大解析引擎的用法与区别帮助新手快速写出可用的书源规则。一、书源规则是什么为什么需要解析引擎一个书源 网站地址 一套解析规则。App 访问网站拿到网页或接口数据后靠规则从中抠出书名、作者、目录、正文等内容。规则的执行核心位于 AnalyzeRule.kt它会把一条规则切分成多个片段再按片段使用的引擎逐段解析切分逻辑见 RuleAnalyzer.kt。每个引擎对应一个解析类引擎解析类XPathAnalyzeByXPath.ktJsonPathAnalyzeByJSonPath.kt正则AnalyzeByRegex.ktCSS选择器默认AnalyzeByJSoup.kt二、规则标志告诉App该用哪套引擎规则前缀决定使用哪个引擎这是新手最容易踩的坑。完整说明见官方帮助文档 ruleHelp.md。标志引擎说明默认CSS选择器直接书写时可省略//或XPath:XPath以//开头时自动识别$.或Json:JsonPath以$.开头时自动识别:正则不可省略且只能用于书籍列表和目录列表js、js、{{...}}JS{{...}}内没有规则标志时按 JS 执行 小技巧多段规则用连接即可组合例如先用 XPath 取到列表再用 JS 做二次处理。三、XPath引擎网页结构精准定位XPath 适合结构稳定的 HTML 网页。它通过路径表达式选取元素语法与文件系统路径类似//选取任意位置的元素如//div[classbook]/a选取属性如//a[idname][]是谓语条件用于筛选如//li[1]取第一个//div[.//em]取包含 em 子元素的 div*通配任意元素|合并多个路径索引从1开始这是与程序员直觉最容易冲突的地方。完整的轴、函数与22个实例可查阅应用内置教程 xpathHelp.md。四、JsonPath引擎接口数据快速获取很多网站的搜索接口直接返回 JSON 数据此时 JsonPath 比 XPath 更简洁$.data.books[*].name取所有书名$.result.items[0].url取第一条结果链接[0]、[*]分别表示取第一个、取全部JsonPath 对 JSON 结构的定位几乎零成本写接口源时优先使用。五、正则引擎文本模式提取正则引擎用于从纯文本中按模式提取内容特点是灵活但可读性差官方限制它只可用于书籍列表和目录列表如用:regex从目录文本中提取章节名与链接。正则语法详解见 regexHelp.md。建议能用 XPath 或 JsonPath 就不用正则正则留给两者搞不定的特殊文本。六、JS引擎万能胶水规则搞不定时JS 引擎是最后的王牌。阅读Sigma 内置 Rhino 引擎modules/rhino/支持在规则里直接写 JavaScript 并调用 Java 方法。三种写法js前缀整条规则按 JS 执行js/js包裹对前一段结果做 JS 后处理{{...}}嵌入变量与表达式常用内置变量result上一步结果、src页面源码、baseUrl当前 URL、java调用App内置方法。另外书源可配置jsLib注入公共 JS 函数实现多源复用。变量与函数完整清单见 jsHelp.md。七、实战一条规则是如何被执行的在 AnalyzeRule.kt 中可以清晰看到引擎分发逻辑解析器根据ModeXPath / Json / Js / WebJs / Default把当前结果交给对应解析类。理解这条链路后你就明白为什么规则顺序不能乱——每一步的输入都是上一步的输出。推荐新手书源编写流程先观察网站返回的是 HTML 还是 JSONHTML 用 XPathJSON 用 JsonPath缺参数、要过滤时用 JS 补刀在 App 内用书源调试功能验证每一步输出调试技巧可参考 debugHelp.md。八、新手常见问题避坑清单❓规则没有结果检查前缀是否匹配引擎JSON 数据里写 XPath 必然为空。❓{{}}没执行 JS因为里面没有规则标志时才会按 JS 执行加js显式声明更稳妥。❓XPath 取下标不对XPath 从 1 开始计数[0]取不到任何元素。❓想复用到多个书源用jsLib抽取公共 JS避免重复维护。❓正则能用于正文吗不能正则规则仅限书籍列表和目录列表。结语掌握规则标志 四大引擎你就能读懂绝大多数书源也能独立写出自己的规则HTML 交给 XPathJSON 交给 JsonPath特殊文本交给正则复杂逻辑交给 JS。祝你在阅读Sigma 里找到心仪的好书 【免费下载链接】legado-E阅读Sigma是legado的继承保持开源免费延续开源精神。项目地址: https://gitcode.com/gh_mirrors/legado2/legado-E创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考