当前位置:
  1. 魔豆IT网
  2. 系统教程
  3. 魔爪
  4. 正文

魔爪编写广告过滤脚本教程

关于魔爪过滤系统:

============================================================

过滤系统能做什么?

魔爪浏览器打开一个网页前,预先处理,替换输出到您需要的html代码。

================

在system/adfilter目录中,包含了所有过滤配置文件,

文件名自拟,唯一即可,后缀xml,编码统一为utf8,以下是所有字段的说明:

================

<ad>

<version>版本号</version>

<author><![CDATA[作者]]></author>

<name><![CDATA[过滤名称]]></name>

<desc><![CDATA[过滤描述]]></desc>

<timestamp>上次更新的时间戳</timestamp>

<filter>

<domain>要过滤的域名,多个域名用;隔开</domain>

<excludeurls>不过滤的地址,设置了该选项则将优先于下边所有项</excludeurls>

<includeurls>过滤的地址,一旦匹配本项,则不会载入该地址</includeurls>

<replaceurls>需要进行内容替换的地址,*代表所有域名下的地址都会进行替换,默认为*</replaceurls>

<replaces>需要进行内容替换的表达式,格式:替换字符||目标替换字符,一行一个,可用三种匹配:1、普通 2、模糊匹配 3、正则匹配</replaces>

</filter>

</ad>

================

在一个过滤文件中,其中filter字段是可以重复写多个,

以下是一个简单例子,filter1把鲜网所有页面防破解复制,

过滤了图片文字,filter2把新浪所有“新浪”文字换成了网易:

================

<ad>

<version>3.0</version>

<author><![CDATA[Djunny]]></author>

<name><![CDATA[default]]></name>

<desc><![CDATA[]]></desc>

<timestamp>0</timestamp>

<filter>

<domain>mooo.com;64.124.54.124;209.133.27.114;209.133.27.115;www.myfreshnet.cc;www.myfreshnet.com;209.133.27.102;209.133.27.104;209.133.27.105;209.133.27.108;myfreshnet.365dayfree.cn;64.124.54.120</domain>

<excludeurls></excludeurls>

<includeurls>

</includeurls>

<replaceurls>

myindex9.asp

indextext.asp

</replaceurls>

<replaces>

/<title><.+>([^>]+)(<\/.+>)(.*?)</title>/is||<title>$1$3</title>

ondragstart='return false' onselectstart='return false' oncontextmenu='return false'||

/<a[^>]*?>(繁|简|一站|二站)<\/a>/is||

/<a[^>]*?><font[^>]*?>(繁|简|一站|二站)<\/font><\/a>/is||

/<(div|span) class=describe>(.*?)</\1>/is||

/<IMG onload=imgload(this) src=\S+\/(\w+\.)gif align=bottom[^>]*?>/is||$1

/swc2(_\d+)?\./is||他

/swe2(_\d+)?\./is||是

/swb2(_\d+)?\./is||我

/swa2(_\d+)?\./is||你

/swd2(_\d+)?\./is||的

</replaces>

</filter>

<filter>

<domain>sina.com.cn</domain>

<excludeurls></excludeurls>

<includeurls>

</includeurls>

<replaceurls>

</replaceurls>

<replaces>

新浪||网易

</replaces>

</filter>

</ad>

============================================================

关于replaces字段的替换说明:

============================================================

replaces支持三种匹配方式,所有表达式均用||为分隔符:

================

1、普通

================

即使用普通的字符串,全字替换。

例,将所有“我的”替换成“你的”:

我的||你的

================

2、模糊匹配

================

使用模糊匹配功能进行替换。

其中,[*]代表任意字符,(*)代表需要归组的字符(要处理的字符),要替换的字符中可以用$1来取得表达式中的匹配(仅支持$1),例1:

我的(*)人||你的$1人

译为:$1代表表达式中的(*)匹配的内容,将目标内容中出现“我的男人”替换成“你的男人”,也可以将“我的男女人”替换成“你的男女人”,同样,依然还可以将“我的人”替换成“你的人”

例2:

我[*]的(*)人||你的$1人

译为:将内容中出现“我是XX的女人”替换成“你的女人”。

================

3、正则表达式匹配

================

使用正则表达式功能进行替换。

魔爪使用正则表达式用的是perl正则表达式内核,使用的方法和php语法相同,格式为:

/正则表达式/[选项]

可使用的选项:

i:不区分大小写

m:多行匹配模式,即.可以代表回车、换行

s:单行匹配模式,与上相反

x:允许在表达式中出现注释

a:非贪婪模式,*,+会匹配尽少的可能

g:不匹配group,正则中支持?,

常用:

/表达式/is

其它请参考具体的正则表达式教程【点击下载】

相关阅读

《魔爪编写广告过滤脚本教程》由网友“忘川眉”推荐。

转载请注明:http://www.modouwifi.com/jiaocheng/05201122962021.html