规则调不通怎么办:从检索失败到播放黑屏的排查表
规则调试的效率取决于定位环节而不是乱改字段。三个故障层,各有一条排查路径。
症状一:搜不出任何结果
问题在检索段。按序检查:
- 目标站本身有反爬验证吗——写规则第一步就该确认搜索时没人机验证,弹验证码的站直接放弃;
- SearchURL 对不对——@keyword 占位符是否完整替换了关键词、地址在浏览器里能否直接打开;
- SearchList 是否以 // 开头——应用只支持 // 开头的选择器,这是官方问答里的头号问题;
- 列表定位是否框错——去开发者工具悬停验证色块覆盖范围,或换用属性定位写法(
//li[@class='xxx'])。
症状二:搜得出结果,但点进去放不出
问题在选集段或嗅探段。按序检查:
- SearchResult 指到哪一页了——它必须带你到达「能看到线路和集数」的页面,指错页则 ChapterRoads/ChapterResult 全盘落空;
- ChapterResult 是否留着集数序号——li[12]/a 只会认第 12 集,去掉方括号;
- 换 WebView 兜底——进规则的高级选项关闭「内置播放器」,应用改用 WebView 直接播放页面,兼容性更好。官方问答原话:部分站点关内置播放器能解决播放问题,但内置播放器可用时仍建议开回,以获得带弹幕的流畅体验;
- 站点是否反盗链——少数站点对视频流做了保护,能被应用本体解决、但外部播放器无解,这类源换一个即可,见反盗链页。
症状三:能放,但在某台设备上不行
先怀疑平台差异。嗅探实现因平台而异:桌面三平台成熟,安卓与鸿蒙走 JavaScript 方案、稳定性稍逊——官方也因此建议规则作者优先在安卓上测试。同一规则跨设备表现不同,参考平台差异页。
通用习惯
- 每改一个字段保存一次、实测一次,别攒五个改动一起验——坏了不知道坏在哪层;
- 对照内置规则验证应用本体正常,把问题面缩到你的规则上;
- 实在写不出来,去官方文档的规则示例章节找同类站点结构参考。