Skip to content

广告屏蔽规则综述

Crystal-RainSlide edited this page Apr 16, 2020 · 6 revisions

官方文档

Adblock Plus

ABP1: Adblock Plus filters explained

Adblock Plus Help Center

uBlock Origin

uBlock Wiki uBlock Wiki 简体中文翻译
uBO1: Static filter syntax 静态过滤规则语法
uBO2: Procedural cosmetic filters 过程式修饰规则
uBO3: Resources Library 资源库

Nano Adblocker

NAB: NanoAdblocker/NanoDoc/Index.MD

AdGuard

ADG: How to create your own ad filters | AdGuard Knowledgebase

别的广告屏蔽器的文档呢?

如果有其他广告屏蔽器的文档没有收录,欢迎反馈。 但是,如果你正在使用的广告过滤器没有关于广告屏蔽规则的文档,你可能最好先考虑换一个广告屏蔽器。 有文档的比没文档的好,哪怕是 WebKit Content Blocker 都比看似更强一点点的 AdBlock 更加理想。 这不是有和没有的区别,而是是有救和没救的区别。


注释

引用: ABP1#comments ABP2#comments

! 字符开头的行都会被作为注释。 一些广告屏蔽器可能支持在 ! 字符甚至任意规则之前加换行符以外的空白字符, 但这一点未被包括在任何官方文档之内。无论有多么需要缩进,也完全不建议这么做。

示例:

! 什么时候才有受广泛支持的多行注释呢
!     感叹号之后倒是好随便缩进
!!!!! 还可以用感叹号缩进

网络请求过滤规则

引用: ABP1 ABP2#basic

按从前到后的顺序,一条网络请求过滤规则由一个可选的排除标记、 一条必要的链接匹配规则和可选的规则选项组成。 三个部分之间不存在特定的分隔符,但排除标记为固定符号, 规则选项拥有必要的起始符,可以起到分辨和分隔各个部分的作用。

[排除标记]链接匹配规则[规则选项]
[@@]链接匹配规则[$不含起始符的规则选项]

链接匹配规则

链接匹配规则分为普通链接匹配规则正则表达式匹配规则两种。

普通链接匹配规则
由链接匹配符与任何可不经转码、直接出现在链接之中的字符组成。 现实使用中,这种链接匹配规则通常是从匹配目标链接地址修改而来的。 - **如果开头和结尾都是 `/` 字符,就会被作为正则表达式匹配规则处理**; - 如果未以通配符、起止符或域名起始符开头,解析时就会往开头加上一个通配符; - 如果未以通配符或者起止符结尾,解析时就会往结尾加上一个通配符。
正则表达式匹配规则
由一条正则表达式与表达式前后的 `/` 起止符构成。 实际上应当与 JavaScript 正则表达式字面量无异。 但是由于每次网络请求时都将执行一遍所有正则表达式规则,编写时也必须考虑到性能。

如果普通链接匹配规则首尾正好都是 / 字符, 可以在前后手动加上通配符 *, 就不会被当成正则表达式匹配规则了。

链接匹配符

符号 名称 说明
* 通配符 匹配任意字符
^ 隔断符 匹配链接结尾处(类似正则表达式中的 $)和除了数字、字母、_-.% 以外的任意字符
| 起止符 匹配链接开始处(类似正则表达式中的 ^)或链接结尾处(类似正则表达式中的 ^
只能位于链接匹配规则的开始处或结尾处。
|| 域名起始符 匹配任意 HTTP 协议前缀与任何后级域名。
只能位于链接匹配规则的开始处。可将其作为起止符的变种。

排除标记

网络请求过滤规则的排除标记为 @@

规则选项

引用: ABP1#options ABP1#filter-options ABP2#options uBO1

大坑啊。

AdBlock Plus 支持的规则选项

script image stylesheet object xmlhttprequest subdocument ping websocket webrtc document elemhide generichide genericblock popup font media other match-case

third-party domain sitekey csp rewrite

uBlock Origin 支持的规则选项

1p 3p all badfilter css cname ehide empty first-party frame ghide important inline-script inline-font mp4 popunder redirect

redirect-rule specifichide shide xhr

网页元素修饰规则

按从前到后的顺序,一条网页元素修饰规则由目标域名、规则类型标识符和选择器组成。 规则类型标识符兼任分隔符。

规则类型标识符

目标域名

选择器

又一个大坑。

 

Clone this wiki locally