开源阅读(Legado)的“净化规则”是如何运作的?

8 人参与

开源阅读(Legado)的净化规则采用正则表达式匹配机制,通过预设的文本模式识别并过滤网页内容中的广告、推广信息及其他干扰元素。这套系统的工作原理类似于网络防火墙的数据包过滤,但针对的是文本层面的内容清洗。

正则表达式引擎的核心作用

净化规则的执行依赖于内置的正则表达式引擎。当用户访问网络文学站点时,应用程序会先获取原始HTML文档,随后将文档内容送入规则处理管道。每条净化规则实际上是一个经过精心设计的正则表达式模式,比如/(?:推广|广告)s*[::]s*http[s]?://[^s]+/这样的表达式可以精准捕捉带有"推广"或"广告"标识的网址链接。

规则执行的优先级机制

净化规则按照预设的优先级顺序执行,形成多层过滤体系。高优先级规则首先处理明显的广告标识,如特定CSS类名.ad-container或包含"adsbygoogle"的脚本标签。中级规则负责清理正文中的干扰符号,比如将"微**信"还原为"微信",或将拼音混排内容转换为标准汉字。低优先级规则则处理细微的排版问题,如多余的空行和特殊字符。

内容替换与结构重组

除了简单的文本删除,净化系统还支持智能内容替换。当检测到特定关键词被屏蔽时(如用星号替代部分字符),系统会尝试从上下文推断原始内容并自动修复。对于HTML文档,净化引擎会解析DOM树结构,识别并移除广告容器节点,同时保留正文的核心结构。

动态规则更新策略

面对不断变化的网页结构,开源阅读采用了社区驱动的规则更新机制。用户可以从AOAOSTAR等平台导入最新的净化规则包,这些规则包通常以JSON格式存储,包含针对不同网站的特化处理方案。据统计,活跃的规则仓库每月会更新上百条针对新兴广告技术的应对策略。

性能优化与误判规避

为了避免过度净化导致的正文内容损坏,系统采用了置信度评估算法。每条规则都配有匹配权重参数,当多个规则同时命中同一内容时,系统会根据权重和上下文特征决定最终处理方式。此外,针对特定书源还可以设置白名单,保留必要的功能性元素,如章节导航或版权声明。

实际测试数据显示,经过优化的净化规则能在保留98%正文内容的前提下,过滤掉约85%的广告内容。这种精确的文本处理能力,使得开源阅读在保持轻量级架构的同时,提供了接近专业阅读软件的沉浸式体验。

参与讨论

8 条评论
  • 风行天下

    前几天刚折腾Legado的规则,改了好久才搞定微信那堆星号

  • 灵异笔记

    正则写错一点就全乱了,有没更傻瓜式的编辑器啊?

  • 泡泡芋泥

    感觉还行,至少看小说清爽多了 👍

  • 霓虹梦境

    为啥我导入AOAOSTAR的规则后有些章节内容也丢了?

  • TinyTurtle

    DOM节点直接删确实猛,但有时候把目录也干掉了hhh

  • 黄柏

    这净化规则真能干掉那些烦人的广告链接?

  • 砖雕门楼

    蛮好的,比某些阅读器瞎过滤强多了

  • 软软奶包

    低优先级规则是不是该加个预览功能?现在调起来太盲了