- UID
- 1110
- 帖子
- 2787
- 精华
- 3
- 贡献
- 20
- 推广
- 0
- 有效BUG
- 0
- 注册时间
- 2005-5-26
|
首先是TheWorld 3 广告过滤扩展简介,推荐大家稍微花时间了解一下,2楼是结合实例的过滤教程
序言
TheWorld 3 的过滤规则采用标准的xml格式,所以在使用和编写的过程中有几点需要注意的我先说一下:
1. 虽然我们的规则是 xml 格式,但是并不需要 xml 语法基础,大家写规则的时候可以复制现成的规则,然后对特定的区域进行修改就可以了
备注:请一定要注意标签的对称和关闭
2. tw3 的过滤规则依然支持正则表达式,没有正则表达式基础的人一样可以编写,因为在 tw3 的过滤规则中,正则表达式只是可选条件
3. 规则文件中的 xml 标签大家可以无视,因为在编写规则的过程中这些不是必须了解和编写的内容,大家需要编写的规则大部分都在<![CDATA[ ]]>中间,编写规则的过程中只有一点要非常注意:CDATA中不支持嵌套
即<![CDATA[ ]]>里面不能出现"]]>"字样
4. 编写过滤规则依然需要一定的 html 语法基础,最起码你要知道那些是你要过滤的内容,那些不是
过滤规则参数简介(请结合过滤扩展附带的示例规则查看,会更加清楚)
一、xml 标签简介(常见的过滤规则中所使用到的,看不明白的可以直接跳过,在编写规则的时候复制现成的进行修改即可,并不一定要了解这些内容)
首先介绍version,这个节点表示过滤规则的版本,从1.0.2.5版过滤扩展开始,升级到2.0版本的规则,即<version>2.0</version>
TheWorld 3 过滤规则支持自动更新,需要编写的时候填写相应的字段
1. onlineupdate
这个节点下的是自动更新需要的填写的内容
1.1 downloadurl
downloadurl是规则更新的地址,例如:发布在论坛上的规则就是这样的<downloadurl><![CDATA[http://bbs.ioage.com/cn/attachment.php?aid=87168]]></downloadurl>
12. quotewebpage
是规则所在页面的链接地址,例如:发布在论坛上的规则就是这样的<quotewebpage><![CDATA[http://bbs.ioage.com/cn/thread-123230-1-1.html]]></quotewebpage>
url拦截部分
1. urlrules
url拦截规则都在<urlrulse></urlrules>以内
1.1 includeurls
url拦截列表,支持正则表达式;如:<includeurls><![CDATA[*/guanggao/*]]></includeurls>
1.2 excludeurls
url拦截排除列表,优先级高于 includeurls;如 <excludeurls><![CDATA[*ioage.com*]]></excludeurls>
页面元素过滤部分
1. rule
对应一个站点的规则就在一个<rule></rule>以内
1.1. name
每个rule节下的<name></name>之间的是过滤规则的名称;如<name>百度的过滤规则</name>
1.2. domains和domain
domains以及domain下的内容是这个规则所对应的站点,其中也可以设置排除站点
注:domain节可以并列
1.2.1 . include和exclude
domain节下,控制规则对应或排除的网址
include:表示该规则对应的网址;如:<include><![CDATA[*baidu.com*]]></include>
exclude:表示该规则排除的网址;如:<exclude><![CDATA[map.baidu.com]]></exclude>
2. pattern
pattern节就是规则主体部分,每一个 pattern 都可以看作是一条规则,由于支持多重过滤,所以可以在 pattern 下再加 pattern,理论上可以无限个
注:该节可由参数设置不同的功能,具体请参考后面的参数简介
2.1 targets
targets节包含规则的匹配和替换
2.2 param
这里的 param 节表示下面的规则所对应的内容(由pattern 节的参数 type 控制,具体请参考后面的参数简介)如:<param><![CDATA[table]]></param> 表示规则对应的范围是一个table
同时,在用作匹配标签的时候 name 节表示规则所匹配的内容,支持正则表达式;如:<param><![CDATA[width="30%"]]></param> 表示在上一节中的范围内搜索 "width="30%""进行匹配
2.3 paramex
这里的 paramex 节表示上节规则所对应的标签属性值(由pattern 节的参数 type 控制,具体请参考后面的参数简介)如:<paramex><![CDATA[header]]></paramex> 表示规则对应的范围是标签属性值为header
2.4 replacevar
replacevar 可以在规则中声明变量,将上一节 param 中匹配到的内容输出到变量;如:<replacevar><![CDATA[$name$]]></replacevar>
2.5 replace
replace 节是规则的替换部分当匹配到上一节 param 的内容后进行替换;如:<replace><![CDATA[<!--AD Blocked By TheWorld 3-->]]></replace>
也可以引用 replacevar 节中的变量,如:<replace><![CDATA[$name$]]></replace>
2.6 reverse
reverse 反向匹配,设为"1"开启,"0"关闭,没有该节即默认关闭
3. attachhtml
attachhtml 可以在对应的页面后面增加自定义的内容;如:<attachhtml><![CDATA[<!--自定的内容-->]]></attachhtml>
二、pattern中的参数
type= 1 (搜索块操作)
按标签(param属性指定的值,如DIV)查找块,为下一级过滤搜索匹配到的区间集(同时搜索到多个满足条件的DIV区间)。
type= 2 (确认块操作)
以正则式表达式(param属性指定的正则表达式)是否匹配,确认上层搜索到的区间是否是需要查找的区域。
type= 3 (确认块操作)
查找通配字符(param的属性指定其值)在上级过滤确认的区间中是否存在,以确认上层搜索到的区间是否是需要查找的区间。
Type= 4 (搜索块操作)
按标签当type=4时,targets节下增加paramex作为结束(以param属性值开始, 以paramex属性值结束)查找块
比如:<param><![CDATA[<!--begin-->]]></param><paramex><![CDATA[<!--end-->]]></paramex>,表示搜索以<!--begin-->开始到<!--end-->结束的区间
type= 5 (搜索确认块操作)
查找任意字符(支持正则表达式),注意,type=5 不适用于以上 4 种方式当中,type=5同时提供搜索和确认操作,可以直接进行替换等操作
比如:<param><![CDATA[google]]></param>表示直接以文本方式搜索"google"字样
三、常量
$AppPath$
引用过滤扩展所在目录路径 |
|