开源阅读(Legado)的净化规则采用正则表达式匹配机制,通过预设的文本模式识别并过滤网页内容中的广告、推广信息及其他干扰元素。这套系统的工作原理类似于网络防火墙的数据包过滤,但针对的是文本层面的内容清洗。
净化规则的执行依赖于内置的正则表达式引擎。当用户访问网络文学站点时,应用程序会先获取原始HTML文档,随后将文档内容送入规则处理管道。每条净化规则实际上是一个经过精心设计的正则表达式模式,比如/(?:推广|广告)s*[::]s*http[s]?://[^s]+/这样的表达式可以精准捕捉带有"推广"或"广告"标识的网址链接。
净化规则按照预设的优先级顺序执行,形成多层过滤体系。高优先级规则首先处理明显的广告标识,如特定CSS类名.ad-container或包含"adsbygoogle"的脚本标签。中级规则负责清理正文中的干扰符号,比如将"微**信"还原为"微信",或将拼音混排内容转换为标准汉字。低优先级规则则处理细微的排版问题,如多余的空行和特殊字符。
除了简单的文本删除,净化系统还支持智能内容替换。当检测到特定关键词被屏蔽时(如用星号替代部分字符),系统会尝试从上下文推断原始内容并自动修复。对于HTML文档,净化引擎会解析DOM树结构,识别并移除广告容器节点,同时保留正文的核心结构。
面对不断变化的网页结构,开源阅读采用了社区驱动的规则更新机制。用户可以从AOAOSTAR等平台导入最新的净化规则包,这些规则包通常以JSON格式存储,包含针对不同网站的特化处理方案。据统计,活跃的规则仓库每月会更新上百条针对新兴广告技术的应对策略。
为了避免过度净化导致的正文内容损坏,系统采用了置信度评估算法。每条规则都配有匹配权重参数,当多个规则同时命中同一内容时,系统会根据权重和上下文特征决定最终处理方式。此外,针对特定书源还可以设置白名单,保留必要的功能性元素,如章节导航或版权声明。
实际测试数据显示,经过优化的净化规则能在保留98%正文内容的前提下,过滤掉约85%的广告内容。这种精确的文本处理能力,使得开源阅读在保持轻量级架构的同时,提供了接近专业阅读软件的沉浸式体验。
参与讨论
前几天刚折腾Legado的规则,改了好久才搞定微信那堆星号
正则写错一点就全乱了,有没更傻瓜式的编辑器啊?
感觉还行,至少看小说清爽多了 👍
为啥我导入AOAOSTAR的规则后有些章节内容也丢了?
DOM节点直接删确实猛,但有时候把目录也干掉了hhh
这净化规则真能干掉那些烦人的广告链接?
蛮好的,比某些阅读器瞎过滤强多了
低优先级规则是不是该加个预览功能?现在调起来太盲了