360安全浏览器广告过滤规则教程
360安全浏览器广告过滤规则教程——by K匪徒
    大家可能用过我的过滤规则,但有时候是不是感觉过滤不干净或者是过滤过度呢?也许这时候你就萌生了一个自己写过滤规则的念头。不要以为有多难,只要你能看懂网页,再加上你的聪明智慧和本文,那么只需15分钟,你自己的无敌规则就能写出来了!
    我们首先来了解下过滤扩展。360安全浏览器中自带的那个过滤扩展效果不算太好,而且不支持过滤规则,那么我们就用从TW中提取出来的吧:按住CTRL键点击此处下载
具体使用方法就不说了。新版的扩展中使用的是标准XML结构的文件。虽然我们的规则是 xml 格式,但是并不需要 xml 语法基础,大家写规则的时候可以复制现成的规则,然后对特定的区域进行修改就可以了……但是要切记,标签不要忘记关闭。:kdhappy;
某些朋友在参考我的规则的时候,会发现其中用了很多正则表达式。不要认为想写规则要是不会正则式的话很难,其实在过滤规则中,正则表达式只是可选条件……
规则文件中的 xml 标签大家可以无视,因为在编写规则的过程中这些不是必须了解和编写的内容,大家需要编写的规则大部分都在中间,编写规则的过程中只有一点要非常注意:CDA
TA中不支持嵌套(就是不支持一层一层的……)……就是"<![CDATA[]]>"里面不能再次出现"]]>",那样就错了。
大学英语六级多少分过
当大家打开规则的时候,会看到头部有如下代码:
<?xml version="1.0" encoding="utf-8"?>
这就是标准的XML文件头,一般写规则的时候直接复制就可以了。
<adfilter></adfilter>
我要飞的更高规则文件开始部分,与结尾的“</adfilter>”对应。
<version>2.0</version>
八年级历史教学总结
这个是过滤规则的版本标志,一般从1.0.2.5以后的都是2.0版本。
<onlineupdate>
  <downloadurl><![CDATA[se.l]]></downloadurl>
  <quotewebpage><![CDATA[se.360]]></quotewebpage>
</onlineupdate>
这几行是代表在线升级和发布页的,如果你要是写出规则自己用的话,可以无视这段。也可以写成本地路径,只是要注意不能以“/”结尾。“<downloadurl></downloadurl>”中间是在线升级文件的地址,“<quotewebpage></quotewebpage>”中间是发布页引用的网址。
以上只是规则文件的开始部分,那么现在我们来一起了解下过滤部分。
大家先从数字含义大全URL拦截开始。
<urlrulse></urlrules>
这是URL过滤部分,所有的过滤小节都在这个根结中。
<includeurls><![CDATA[*/guanggao/*]]></includeurls>
URL拦截列表,支持正则式。可以写多个。
<excludeurls><![CDATA[*360*]]></excludeurls>
URL拦截排除列表,优先级高于 includeurls,同样支持多个。
下面大家一起来了解下页面过滤部分。
<rule></rule>
对应一个站点的规则就在一个<rule></rule>以内。
<name>广告过滤</name>
每个rule节下的<name></name>之间的是过滤规则的名称。
<domains>
  <domain>
    <include>
      <![CDATA[*360*]]>
    </include>
<exclude>
  <![CDATA[bbs.360]]>
</exclude>
  </domain>
</domains>
这是这个规则所对应的站点,其中也可以设置排除站点。Doman节可以并列,但是Domans节不可以。
<pattern type="*"></pattern>
外联部工作计划Pattern节就是规则主体部分,每一个 pattern 都可以看作是一条规则,由于支持多重过滤,所以可以在 pattern 下再加 pattern,理论上可以无限个。由于该节参数很多,在稍后讲解。
<targets></targets>
这里面包含规则的匹配和替换。每个pattern中只能有一个,不能并列。
<param>
  <![CDATA[div]]>
</param>
这里的描写秋天的好段 param 节表示下面的规则所对应的内容。示例中表示规则对应的范围是一个div
如果用在匹配标签,当和name节中的内容进行匹配的内容时,可以使用正则式规定匹配范围,如:
<param><![CDATA[width="50%"]]></param>
这表示在上一节中的范围内搜索“width="50%"”进行匹配。
<paramex><![CDATA[header]]></paramex>
这里的 paramex 节表示上节规则所对应的标签属性值(由pattern 节的参数 type 控制),示例表示规则对应的范围是标签属性值为“header
<replacevar><![CDATA[$adskill$]]></replacevar>
replacevar 可以在规则中声明变量,将上一节 param 中匹配到的内容输出到变量。
<replace><![CDATA[]]></replace>
replace 节是规则的替换部分当匹配到上一节 param 的内容后进行替换。注释形式写是为
了不将替换信息显示到网页上。
<attachhtml><![CDATA[<!--自定的内容-->]]></attachhtml>
attachhtml 可以在对应的页面后面增加自定义的内容,该节在规则中可有可无。
现在大家已经对过滤规则有个初步的了解了,下面我来给大家讲解下“pattern”中的参数。
type= 1 (搜索块操作)
按标签(param属性指定的值,DIV)查块,为下一级过滤搜索匹配到的区间集(同时搜索到多个满足条件的DIV区间)

type= 2 (确认块操作)
以正则式表达式(param属性指定的正则表达式)是否匹配,确认上层搜索到的区间是否是需要查的区域。

type= 3 (确认块操作)
查通配字符(param的属性指定其值)在上级过滤确认的区间中是否存在,以确认上层搜索到的区间是否是需要查的区间。

type= 4 (搜索块操作)
按标签当type=4时,targets节下增加paramex作为结束(param属性值开始, paramex属性值结束)查块,比如:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。