标题:
[TheWorld 3]
TheWorld 3 广告过滤规则教程 (2009.12.16 更新)
[打印本页]
作者:
elkay
时间:
2009-11-20 19:48
标题:
TheWorld 3 广告过滤规则教程 (2009.12.16 更新)
首先是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$
引用过滤扩展所在目录路径
作者:
elkay
时间:
2009-11-20 20:02
tw3 的过滤规则实际上比tw2要容易的多,希望大家都能很好的利用,有问题的请在本版讨论
由于目前的过滤扩展管理界面没有完善,所以暂时只能将规则做成可以导入的xml规则文件,示例以过滤世界之窗论坛顶部为例
首先,给大家提供一个可以导入的xml模板,把下面的内容保存成xml文件即可
<?xml version="1.0" encoding="utf-8"?>
<adfilter>
<version>2.0</version>
<rules>
<rule>
<name>过滤规则名称</name>
<onlineupdate>
<downloadurl><![CDATA[过滤规则文件链接]]></downloadurl>
<quotewebpage><![CDATA[过滤规则所在帖子链接]]></quotewebpage>
</onlineupdate>
<domains>
<domain>
<include>
<![CDATA[*规则对应的网址*]]>
</include>
<exclude>
<![CDATA[规则排除的网址]]>
</exclude>
</domain>
</domains>
<pattern type="1">
<targets>
<param>
<![CDATA[标签]]>
</param>
</targets>
<pattern type="3">
<targets>
<param>
<![CDATA[关键字]]>
</param>
<replace>
<![CDATA[<!--AD Blocked By TheWorld 3-->]]>
</replace>
</targets>
</pattern>
</pattern>
</rule>
</rules>
</adfilter>
复制代码
首先,我们来看一下我们要过滤的目标
就是本论坛的顶部:
下载
(29.47 KB)
2009-11-20 20:02
接着,我们查看页面源码找到这个部分,很容易我们就找到了这个部分
<div id="header">
复制代码
我们要过滤的目标就是id="header"的div
根据一楼的设置参数,我们把这个代入到刚刚提供的xml模板中即可,我们得到了以下的规则
<?xml version="1.0" encoding="utf-8"?>
<adfilter>
<version>2.0</version>
<rules>
<rule>
<name>tw论坛首页测试规则</name>
<onlineupdate>
<downloadurl><![CDATA[http://bbs.ioage.com/cn/attachment.php?aid=12345]]></downloadurl>
<quotewebpage><![CDATA[http://bbs.ioage.com/cn/thread-12345-1-1.html]]></quotewebpage>
</onlineupdate>
<domains>
<domain>
<include>
<![CDATA[*bbs.ioage.com/cn/*]]>
</include>
</domain>
</domains>
<pattern type="1">
<targets>
<param>
<![CDATA[div]]>
</param>
</targets>
<pattern type="3">
<targets>
<param>
<![CDATA[id="header"]]>
</param>
<replace>
<![CDATA[<!--AD Blocked by TheWorld 3-->]]>
</replace>
</targets>
</pattern>
</pattern>
</rule>
</rules>
</adfilter>
复制代码
把上面的规则保存成xml文件,然后在广告设置界面导入之后我们再次访问论坛就会看到,顶部的内容已经没有了
如图:
下载
(3.08 KB)
2009-11-20 20:02
图片附件:
01.PNG
(2009-11-20 20:02, 29.47 KB) / 下载次数 2093
http://bbs.theworld.cn/attachment.php?aid=85810&k=2fe6d96db921a34b7ebe8baf047cdc09&t=1732298496&sid=d2P5y2
图片附件:
05.PNG
(2009-11-20 20:02, 3.08 KB) / 下载次数 2128
http://bbs.theworld.cn/attachment.php?aid=85811&k=6b9f82334d0d3eab4ee050d92ad96eed&t=1732298496&sid=d2P5y2
作者:
jym2005
时间:
2011-1-15 19:22
标题:
相关帖子
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/)
Powered by Discuz! 7.2