5 分钟调干净:Yuedu 书源净化规则调试完整实操
【免费下载链接】Yuedu📚「阅读」自用书源分享项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu
把书源导入「阅读」APP 后,正文里夹着推广段落、页脚乱码,甚至每章重复两遍——这些都不是书源"坏了",而是净化规则没对上网页结构。Yuedu 书源净化规则调试其实就是改几行 JSON 的事,跟着下面的步骤走完一遍,你就能独立把任何一本"脏书"调到能正常看。
先搞懂书源与净化规则
书源文件本质是一份 JSON 规则清单:APP 拿到网页 HTML 后,按里面的选择器把书名、章节、正文"抠"出来。shuyuan 这个文件就是 22 个书源的合集,每个书源管一个站点。
净化规则集中在ruleContent这一层:content值负责定位正文区块(上面那段 JS 就是先判断网页、再取class.txtnav里的正文),replaceRegex负责把正文里残留的垃圾按正则删掉,searchUrl里的charset则决定网页用什么编码解码——乱码基本都出在这两处。
下面这个片段展示了净化规则的标准长相:content选正文容器,replaceRegex按序清掉推广块和样式标签:
"ruleContent": { "content": "class.txtnav.0@textNodes", "replaceRegex": [ ["<div[^>]*class=\"[^\"]*promo[^\"]*\"[^>]*>.*?</div>", ""], ["<style.*?</style>", ""] ] }完整调一遍:从打开调试到验证生效
打开调试模式
这一步解决"怎么看见规则执行过程"的问题。依次打开我的 > 设置 > 通用设置 > 开发者选项,然后在书源管理里长按目标书源,点击编辑,打开调试模式开关。此时你应该看到界面多出了规则日志区域。
对照原始页面找差异
这一步解决"到底是哪一步出的错"的问题。在电脑浏览器打开同一章的正文页,右键检查,展开正文区块,记下它的 class 名。再切回 APP 调试面板,对比日志里content实际取到的文本。此时你应该能明确判断:是选择器没选到(正文缺失或取到导航),还是取到了但夹带广告(需要过滤)。
修改规则
这一步解决"怎么把脏东西删掉"的问题。在规则编辑器里找到ruleContent,按上一步的结论改:定位错了就改content的选择器,残留垃圾就往replaceRegex里追加一对正则。改完点保存,此时你应该看到规则区出现绿色"已保存"提示。
重新加载验证
这一步解决"改了到底有没有用"的问题。返回书架,长按这本书点击刷新章节,再打开刚才那章正文。此时你应该看到正文干净、无重复、无乱码——如果某一类问题还在,回到速查表对症补一条,循环验证即可。
常见症状对症速查
| 症状 | 先查哪里 | 怎么改 |
|---|---|---|
| 正文夹广告或推广段落 | ruleContent.replaceRegex | 按广告块标签特征追加一条过滤正则 |
| 整章显示乱码 | searchUrl里的charset | 站点是 GBK 就填入"charset": "gbk",UTF-8 则填utf-8 |
| 章节列表重复成对出现 | ruleToc.chapterList | 收紧列表选择器,只匹配真正的章节容器 |
| 正文里混入小图标图片 | replaceRegex | 追加["<img.*?>", ""]清除 img 标签 |
| 正文整体缺失或取到导航栏 | ruleContent.content | 对照浏览器 Elements 面板换成正确的 class 选择器 |
| 加载时提示 403 或被拦 | header请求头 | 补上Referer与常见User-Agent,并确认enabledCookieJar已开启 |
进阶场景
动态加载的内容
这一步解决"选择器怎么选都取不到正文"的问题。有些网站正文靠 JS 延迟渲染,静态 HTML 里根本没有那段文字,此时可以在content值里追加一段<js>脚本,主动等渲染完成后再取值:
"ruleContent": { "content": "<js>java.waitForText('本章正文', 5000);</js>class.reader@textNodes", "replaceRegex": [["请收藏本站.*", ""]] }被反爬拦截
这一步解决"请求直接 403 或返回人机验证页"的问题。给书源挂上伪装请求头并打开 Cookie 容器,多数站点的拦截就能绕过:
"header": { "User-Agent": "Mozilla/5.0 (Linux; Android 12) AppleWebKit/537.36 Chrome/115.0.4664 Mobile Safari/537.36", "Referer": "https://www.example-novel.com" }, "enabledCookieJar": true另外别忘了在其他设置里把预下载和线程数调到 1~3,避免高频请求再次触发限制。
收尾避坑清单
- 修改前先备份规则:在书源管理里点导出,把当前 shuyuan 存一份带日期的副本再动手
- 一次只改一条规则,方便出问题时快速回退定位
replaceRegex用.*?非贪婪写法,.*容易一删到底把正文也吞掉- 遇到人机验证页,优先配合
enabledCookieJar处理,不要盲目改正文选择器 - 调试完顺手检查 README 的导入说明,确认书源版本没有更新
这套流程记住就一句话:症状进速查表反查规则字段,再落到replaceRegex或content上改。挑一本最近出问题的书,现在就按四步走一遍,你的书架会从今往后干净很多。
【免费下载链接】Yuedu📚「阅读」自用书源分享项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考