2023年12月6日发(作者:)
360安全浏览器广告过滤规则教程——by 小K匪徒
大家可能用过我的过滤规则,但有时候是不是感觉过滤不干净或者是过滤过度呢?也许这时候你就萌生了一个自己写过滤规则的念头。不要以为有多难,只要你能看懂网页,再加上你的聪明智慧和本文,那么只需15分钟,你自己的无敌规则就能写出来了!
我们首先来了解下过滤扩展。360安全浏览器中自带的那个过滤扩展效果不算太好,而且不支持过滤规则,那么我们就用从TW中提取出来的吧:按住CTRL键点击此处下载
具体使用方法就不说了。新版的扩展中使用的是标准XML结构的文件。虽然我们的规则是 xml 格式,但是并不需要 xml 语法基础,大家写规则的时候可以复制现成的规则,然后对特定的区域进行修改就可以了……但是要切记,标签不要忘记关闭。:kdhappy;
某些朋友在参考我的规则的时候,会发现其中用了很多正则表达式。不要认为想写规则要是不会正则式的话很难,其实在过滤规则中,正则表达式只是可选条件……
规则文件中的 xml 标签大家可以无视,因为在编写规则的过程中这些不是必须了解和编写的内容,大家需要编写的规则大部分都在中间,编写规则的过程中只有一点要非常注意:CDATA中不支持嵌套(就是不支持一层一层的……)……就是""里面不能再次出现"]]>",那样就错了。
当大家打开规则的时候,会看到头部有如下代码:
这就是标准的XML文件头,一般写规则的时候直接复制就可以了。
规则文件开始部分,与结尾的“”对应。
这个是过滤规则的版本标志,一般从1.0.2.5以后的都是2.0版本。
这几行是代表在线升级和发布页的,如果你要是写出规则自己用的话,可以无视这段。也可以写成本地路径,只是要注意不能以“/”结尾。“
以上只是规则文件的开始部分,那么现在我们来一起了解下过滤部分。
大家先从URL拦截开始。
这是URL过滤部分,所有的过滤小节都在这个根结中。
URL拦截列表,支持正则式。可以写多个。
URL拦截排除列表,优先级高于 includeurls,同样支持多个。
下面大家一起来了解下页面过滤部分。
对应一个站点的规则就在一个
每个rule节下的
这是这个规则所对应的站点,其中也可以设置排除站点。Doman节可以并列,但是Domans节不可以。
Pattern节就是规则主体部分,每一个 pattern 都可以看作是一条规则,由于支持多重过滤,所以可以在 pattern 下再加 pattern,理论上可以无限个。由于该节参数很多,在稍后讲解。
这里面包含规则的匹配和替换。每个pattern中只能有一个,不能并列。
这里的 param 节表示下面的规则所对应的内容。示例中表示规则对应的范围是一个div。
如果用在匹配标签,当和name节中的内容进行匹配的内容时,可以使用正则式规定匹配范围,如:
这表示在上一节中的范围内搜索“width="50%"”进行匹配。
这里的 paramex 节表示上节规则所对应的标签属性值(由pattern 节的参数 type 控制),示例表示规则对应的范围是标签属性值为“header”
replacevar 可以在规则中声明变量,将上一节 param 中匹配到的内容输出到变量。
replace 节是规则的替换部分当匹配到上一节 param 的内容后进行替换。注释形式写是为了不将替换信息显示到网页上。
attachhtml 可以在对应的页面后面增加自定义的内容,该节在规则中可有可无。 现在大家已经对过滤规则有个初步的了解了,下面我来给大家讲解下“pattern”中的参数。
type= 1 (搜索块操作)
按标签(param属性指定的值,如DIV)查找块,为下一级过滤搜索匹配到的区间集(同时搜索到多个满足条件的DIV区间)。
type= 2 (确认块操作)
以正则式表达式(param属性指定的正则表达式)是否匹配,确认上层搜索到的区间是否是需要查找的区域。
type= 3 (确认块操作)
查找通配字符(param的属性指定其值)在上级过滤确认的区间中是否存在,以确认上层搜索到的区间是否是需要查找的区间。
type= 4 (搜索块操作)
按标签当type=4时,targets节下增加paramex作为结束(以param属性值开始, 以paramex属性值结束)查找块,比如:
]]>
这表示搜索以“”开始到“”结束的区间。
type= 5 (搜索确认块操作)
查找任意字符(支持正则表达式),注意,type=5 不适用于以上 4 种方式当中,type=5同时提供搜索和确认操作,可以直接进行替换等操作,比如:
这表示直接以文本方式搜索"baidu"字样。
OK,基础的讲解就到此为止,下一页给出个规则示例模板。至于规则保存,如果规则文件中有中文或其他的双字节字符,那么要以UTF-8编码保存。
————————————示例模板————————————
]]>
————————————一起DIY————————————
接下来,大家一起跟我写一个过滤规则吧。
我们来写一个屏蔽360论坛LOGO的过滤规则吧!
我们先把规则的基本内容写上。
下面我们给这个规则文件添加一个过滤规则:
规则名称我们已经添加好了,我们先去看看360论坛的LOGO的代码。
经过查看网页源代码,我们发现LOGO位于一个
节中。下面我们继续写过滤规则,将其过滤掉。
<=关键词
<=关键词的具体数据,根据源代码我们知道这里要过滤掉div节中的相关。
<=在上面的关键词基础上进一步搜索 p
class="logo"关键词,准确定位,不然就把所有div标签全删除了。
]]> <=替换文本,可以换成任何东西,不过为了不生效,要加上,把替换的文本解释成注释。
<=关闭模式3
<=关闭模式1
把刚才的注释全部去掉,就像这样:
]]>
我们保存为UTF-8编码的XML文件,然后导入到过滤扩展中,打开360论坛,一起看看效果吧:


发布评论