Board logo

标题: [过滤规则] 自制常见广告过滤规则 最后更新:2008-09-13 [打印本页]

作者: 狄烁stec    时间: 2008-5-27 16:54     标题: 自制常见广告过滤规则 最后更新:2008-09-13

感谢凤凰工作室,没有它就没有TheWorld
感谢正则表达式,没有它就没有这些规则
写在前面的话:
1.由于本人能力有限,规则只能过滤掉一部分广告,并且对于产生的空白框架,我无能为力,请各位多多包涵.
2.请大家善用TheWorld的网站白名单功能(自己的邮箱,博客都可以填进去)
3.请大家善用TheWorld的禁止显示Flash功能(绝大多数Flash都是广告,看视频的时候再打开)

规则做了优化,可读性比较差...
VERSION 2008-09-13
  1. //数字组合
  2. #ex#<(I(?:MG|FRAME)|SCRIPT|EMBED|PARAM)\x20[^-_\\\/.?="'>]+(?:[-_\\\/.?="']+[^-_\\\/.?="'>]+)*?[-_\\\/.?="']+([1-9]\d{1,2}[-_xX][1-9]\d{0,1}[05])[-_\\\/.?="'&\x20][^>]*>(?:(?:(?!<\1\b)[\s\S]){0,512}?<]*?\1>)?###\\??\/[^>]*?\1>)?###<S STYLE="background:#EEE;color:#FFF;font-size:9pt" TITLE="$1">[$2]</S>
  3. //关键词
  4. #ex#<(A|SCRIPT|I(?:MG|FRAME)|EMBED|PARAM)\x20[^-_\\\/.?="'>]+(?:[-_\\\/.?="']+[^-_\\\/.?="'>]+)*?[-_\\\/.?="']+((?:360quan|9v|a(?:d(?:\d+|click|id|pictures|s(?:it)?|union|v(?:iew)?|)|l(?:i(?:mama|union)|l(?:4ad|yes\d*)))|b(?:anners?|iz5)|c(?:hinesefriendfinders?|l(?:ck?|ic(?:k(?:eye)?|))|p(?:[cdlmps]|v|ro))|d(?:annonces|otmore)|e(?:iv|te(?:un)?)|g(?:g(?:ao|img|)|o(?:cpc|oglesyndication)|uang(?:g(?:ao)?|))|h(?:ao(?:ei|ye)|eima8)|i(?:dc|focus)|j(?:iaoyou|oy)|keyrun|market|narrowad|p4p|qyule|s(?:ooe|pc(?:lick|ode)|tat)|tuotu|u(?:link|n(?:i(?:gg|on(?:sky)?)|stat|))|vo(?:done|gate)|webgame|y(?:eeyoo|igao)))[-_\\\/.?="'&][^>]*>(?:(?:(?!<\1\b)[\s\S]){0,512}?<]*?\1>)?###\\??\/[^>]*?\1>)?###<S STYLE="background:#EEE;color:#FFF;font-size:9pt" TITLE="$1">[$2]</S>
  5. //脚本
  6. #ex#<SCRIPT[^>]*>(?:(?!<\/SCRIPT>)[\s\S])*?(?:[-_/."'?=]|^)(google(?:syndication|_ad)|alimama|allyes|sogou_param|cpro)[-_/."'?=](?:(?!<\/SCRIPT>)[\s\S])*?<\/SCRIPT>###<S STYLE="background:#EEE;color:#FFF;font-size:9pt" TITLE="SCRIPT">[$1]</S>
复制代码






中间省略N多版本


VERSION 2008-05-27
A版:显示被过滤的关键词和链接类型
  1. #ex#<(A|SCRIPT|IFRAME|EMBED|IMG)[^>]+?(?:\.|\/|_)(a(?:2d|d(?:s?|s?click|tology|tools|union|\d{1,3})|l(?:imama|lyes\d*))|banner|gg|p4p|uni(?:gg|on(?:sys)?)|hao(?:ei|ye)|keyrun|googlesyndication|t2click|tuotu|vodone|yidaba|skype\d*|floatads?|firefox\.js|\w*gg\d*.js|(?:08|78|28|158|36578|89178|9v|360quan|c(?:hanet|o-cm|oopen)|p(?:v|hah)|yigao)\.c(?m|n)|pro(?:img)?\.163|(?:hc|ma)\.baidu|baidu\.com\/(?:baidu|cpro)|cpc\.sogou|ufile\.kuaiche|atm\.youku|biz5\.sandai|(?:s|p4)p\.tom)(?:\.|\/|"|_|\.js)[^>]*?>(?:[\s\S]*?(?:<)|)###\\?\/\1>)|)###<span style="background-color:Silver;color:White;font-size:9pt">[<$1>($2)]</span>
复制代码
B版:直接隐藏
  1. #ex#<(A|SCRIPT|IFRAME|EMBED|IMG)[^>]+?(?:\.|\/|_)(?:a(?:2d|d(?:s?|s?click|tology|tools|union|\d{1,3})|l(?:imama|lyes\d*))|banner|gg|p4p|uni(?:gg|on(?:sys)?)|hao(?:ei|ye)|keyrun|googlesyndication|t2click|tuotu|vodone|yidaba|skype\d*|floatads?|firefox\.js|\w*gg\d*.js|(?:08|78|28|158|36578|89178|9v|360quan|c(?:hanet|o-cm|oopen)|p(?:v|hah)|yigao)\.c(?m|n)|pro(?:img)?\.163|(?:hc|ma)\.baidu|baidu\.com\/(?:baidu|cpro)|cpc\.sogou|ufile\.kuaiche|atm\.youku|biz5\.sandai|(?:s|p4)p\.tom)(?:\.|\/|"|_|\.js)[^>]*?>(?:[\s\S]*?(?:<)|)###
复制代码

(把预览图片删掉了,太占页面高度...)
各位如果觉得不错就加到黑名单里吧:lol:

[ 本帖最后由 狄烁stec 于 2008-9-14 14:06 编辑 ]
作者: 小絮    时间: 2008-5-27 22:15

此规则的威力不错,但我个人感觉这样全放在一条规则中不好,一是降低可读性,二是可能会对某些网页的框架结构产生影响破坏视觉效果。
如果能够将常见的广告推广联盟的代码单独分离出来,以后维护就容易多啦。

例如:

  1. /(?:cpro|vodone|keyrun|union|unstat|p4p|7clink|heima8|alimama|adsence|allyes\.com|un\.265|lianmeng|clickeye|spcode)/
  2. /\d{2,3}?[-_x]\d{2,3}\.(?:jpg|gif|swf|js)/
  3. /[\W\d_]ad(?:s|v)?[\W\d_]/
  4. #ex#<script[^>]*?[\W\d_]ad(?:s|v)?[\W\d_][\s\S]*?</script>###
  5. #ex#<div[^>]*?[\W\d_]ad(?:s|v)?[\W\d_]((?!<div[^>]*?>)[\s\S])*?</div>###
  6. #ex#<span[^>]*?[\W\d_]ad(?:s|v)?[\W\d_][\s\S]*?</span>###
复制代码

第一条是针对各种广告推广联盟的过滤代码,如果要更新只需要在最后将新的特征符加上即可。
第二条是针对“数字_数字”之类的图片、flash、脚本进行过滤
第三条是针对 含“ad”、“ads”、“adv”、“ad_”、“ad-”等的连接地址进行拦截下载,可拦截img、js、script等
第四、五、六条分别是对标题中含有“ad”特征符的script、div、span进行过滤。
作者: 狄烁stec    时间: 2008-5-27 22:49

规则里过滤的广告都是我近一年来有意无意搜集的,然后集成到一条规则,方便不喜欢思考的朋友直接拿来用使用.
  1. 关键词
  2. a(?:2d|d(?:s?|s?click|tology|tools|union|\d{1,3})|l(?:imama|lyes))|banner|gg|p4p|uni(?:gg|on(?:sys)?)|hao(?:ei|ye)|keyrun|googlesyndication|t2click|tuotu|vodone|yidaba|skype\d*|floatads?|firefox.js
复制代码
  1. 域名
  2. (?:08|78|28|158|36578|89178|9v|360quan|c(?:hanet|o-cm|oopen)|p(?:v|hah)|yigao).c(?:om|n)
复制代码

[code]推广广告
pro(?:img)?.163|(?:hc|ma).baidu|baidu.com/(?:baidu|cpro)|cpc.sogou|ufile.kuaiche|atm.youku|bliz5.sandai|(?:s|p4)p.tom[code]
作者: qionglaoer    时间: 2008-5-30 23:05

好COOL,不错,谢谢楼主
作者: qionglaoer    时间: 2008-5-30 23:10

好COOL的规则,下载使用了,谢谢楼主分享!
作者: qionglaoer    时间: 2008-5-30 23:21

试用了一下,发现好多网站显示不正常哦,很多内容被过滤了,有些广告却还在,完全不实用,楼主看来要修改一下呀
作者: 狄烁stec    时间: 2008-5-31 10:31

回6楼
用一条规则屏蔽全部的广告是不太现实的,如果有那样的规则,我还真想学习学习.
这条规则一直在改进,能不能把你遇到的不能正常显示的网址发上来?我会改进的.
作者: qionglaoer    时间: 2008-5-31 12:32

网易啊,新浪啊,这些大型门户网站都有问题,试了几个门户网站发现根本就不行,就没有试其它的了
打开它们的首页就不对,网易进邮箱看更干净
作者: cestlavieyx    时间: 2008-6-1 00:33

...楼主太有才咯...
作者: 狄烁stec    时间: 2008-6-2 11:01

非常感谢qionglaoer的测试,因为我几乎不去新浪网易等等门户
更新了一下,测试没有大问题了.另外这个规则只是针对广泛的广告(大部分是推广),免不了会有大量的漏网之鱼.
麻烦斑竹看到后把顶楼的修改一下,我没有编辑权限
  1. //整合版
  2. #ex#<(A|SCRIPT|IFRAME|EMBED|IMG)[^>]+?\b(?:href|src)[^>]*?=[^>]*?(?:\.|\/)(ad(?:[-_][a-z*]+|\d{1,3}|files?|frame|gifs?|graph|images|cycle|show|s?click|tology|tools|league|s?union|2d|vs?|s?)|al(?:imama|l4ad|lyes\d*)|banner|cpc|g(?:uang?)?g(?:ao|img)?|pop(?:up)?(?:s)?|p4p|uni(?:gg|on(?:sys)?)|hao(?:ei|ye)|keyrun|googlesyndication|t2click|tuotu|vodone|yeeyoo|yidaba|tuijian|qyule|skype\d*|float(?:ads?)?|firefox\.(?:js|gif|html?)|\w*gg\d*.js|[\d?]{2,3}[-_x+][\d?]{2,3}|(?:(?!51|91|5460|163|126|265|17173|955)\d{2,6}|9v|360quan|c(?:hanet|o-cm|oopen)|p(?:v|hah)|yigao|sooe).c(?:om|n)|pro(?:img)?\.163|(?:hc|ma|utk)\.baidu|baidu\.com\/(?:baidu|cpro)|ufile\.kuaiche|atm\.youku|biz5\.sandai|(?:s|p4)p\.tom|eachnet\.com\/[\w./]*?\?adid)(?:\.|\/|"|=)[^>]*?>[\s\S]*?<\\?\/\1>###<span style="background-color:Silver;color:White;font-size:9pt">[&lt;$1&gt;($2)]</span>
复制代码
  1. //分类版
  2. //ad
  3. #ex#<(A|SCRIPT|IFRAME|EMBED|IMG)[^>]+?\b(?:href|src)[^>]*?=[^>]*?(?:\.|\/)(ad(?:[-_][a-z*]+|\d{1,3}|files?|frame|gifs?|graph|images|cycle|show|s?click|tology|tools|league|s?union|2d|vs?|s?))(?:\.|\/)[^>]*?>[\s\S]*?<\\?\/\1>###<span style="background-color:Silver;color:White;font-size:9pt">[&lt;$1&gt;($2)]</span>
  4. //关键词
  5. #ex#<(A|SCRIPT|IFRAME|EMBED|IMG)[^>]+?\b(?:href|src)[^>]*?=[^>]*?(?:\.|\/)(al(?:imama|l4ad|lyes\d*)|banner|cpc|g(?:uang?)?g(?:ao|img)?|pop(?:up)?(?:s)?|p4p|uni(?:gg|on(?:sys)?)|hao(?:ei|ye)|keyrun|googlesyndication|t2click|tuotu|vodone|yeeyoo|yidaba|tuijian|qyule|skype\d*|float(?:ads?)?|firefox\.(?:js|gif|html?)|\w*gg\d*.js)(?:\.|\/|")[^>]*?>[\s\S]*?<\\?\/\1>###<span style="background-color:Silver;color:White;font-size:9pt">[&lt;$1&gt;($2)]</span>
  6. //***x*** 型
  7. #ex#<(A|SCRIPT|IFRAME|EMBED|IMG)[^>]+?\b(?:href|src)[^>]*?=[^>]*?(?:\.|\/)([\d?]{2,3}[-_x+][\d?]{2,3})(?:\.|\/)[^>]*?>[\s\S]*?<\\?\/\1>###<span style="background-color:Silver;color:White;font-size:9pt">[&lt;$1&gt;($2)]</span>

  8. //域名
  9. #ex#<(A|SCRIPT|IFRAME|EMBED|IMG)[^>]+?\b(?:href|src)[^>]*?=[^>]*?(?:\.|\/)((?:(?!51|91|5460|163|126|265|17173|955)\d{2,6}|9v|360quan|c(?:hanet|o-cm|oopen)|p(?:v|hah)|yigao|sooe).c(?:om|n))(?:\/|\.)[^>]*?>[\s\S]*?<\\?\/\1>###<span style="background-color:Silver;color:White;font-size:9pt">[&lt;$1&gt;($2)]</span>

  10. //推广广告
  11. #ex#<(A|SCRIPT|IFRAME|EMBED|IMG)[^>]+?\b(?:href|src)[^>]*?=[^>]*?(?:\.|\/)(pro(?:img)?\.163|(?:hc|ma|utk)\.baidu|baidu\.com\/(?:baidu|cpro)|ufile\.kuaiche|atm\.youku|biz5\.sandai|(?:s|p4)p\.tom|eachnet\.com\/[\w./]*?\?adid)(?:\.|\/)[^>]*?>[\s\S]*?<\\?\/\1>###<span style="background-color:Silver;color:White;font-size:9pt">[&lt;$1&gt;($2)]</span>
复制代码

作者: 285900537    时间: 2008-6-2 11:12

我觉得过滤的同时还需要考虑到排版的问题

过滤不是为了过滤广告而过滤广告,而是为了改善浏览体验而过滤广告.

那个...太空荡荡了吧,看上去比较不爽~~...

不过楼主的规则还是比较强大的哈
作者: qionglaoer    时间: 2008-6-3 13:32

宁愿有漏网之鱼也不要赶尽杀绝,我再来试试呀
作者: qionglaoer    时间: 2008-6-3 13:34

还想请问一下楼主,你的这一条强悍的过滤规则还需不需要配合过滤区的基础黑名单使用呢?
作者: 狄烁stec    时间: 2008-6-6 13:41

这个规则和基础黑名单有重复的地方,配合黑名单的效果肯定更强.
我遇到过基础黑名单误杀的情况,又懒得分析,所以我从5月26号开始不再使用基础黑名单.
下面是我一直用的全部规则.
http://hi.baidu.com/blacklistbot ... f83ffe43169435.html
不是广告哈
作者: qionglaoer    时间: 2008-6-7 22:10

[<script>(baidu.com/cpro)]

请问怎么设置才能不显示这些过滤之后留下的东东,谢谢
作者: 狄烁stec    时间: 2008-6-11 18:22

  1. #ex#<(A|SCRIPT|IFRAME|EMBED|IMG)[^>]+?\b(?:href|src)[^>]*?=[^>]*?(?:\.|\/)(?:ad(?:[-_][a-z*]+|\d{1,3}|files?|frame|gifs?|graph|images|cycle|show|s?click|tology|tools|league|s?union|4all|2d|vs?|s?)|al(?:imama|l4ad|lyes\d*)|banner|cpc|g(?:uang?)?g(?:ao|img)?|pop(?:up)?(?:s)?|p4p|uni(?:gg|on(?:sys)?)|hao(?:ei|ye)|keyrun|googlesyndication|t2click|tuotu|vodone|yeeyoo|yidaba|tuijian|qyule|skype\d*|float(?:ads?)?|firefox\.(?:js|gif|html?)|\w*gg\d*.js|[\d?]{2,3}[-_x+][\d?]{2,3}|(?:(?!51|91|5460|163|126|265|17173|955)\d{2,6}|9v|360quan|c(?:hanet|o-cm|oopen)|p(?:v|hah)|yigao|sooe).c(?:om|n)|pro(?:img)?\.163|(?:hc|ma|utk|spcode)\.baidu|baidu\.com\/(?:baidu|cpro)|ufile\.kuaiche|atm\.youku|biz5\.sandai|(?:s|p4)p\.tom|eachnet\.com\/[\w./]*?\?adid)(?:\.|\/|"|=)[^>]*?>[\s\S]*?<\\?\/\1>###
复制代码
其实就是把“###”后面的东东去掉就好啦
作者: 鲁速    时间: 2008-6-25 14:10

用了2楼的规则,新浪视频、新浪共享看来没问题。
作者: flxgundam    时间: 2008-6-27 18:52

楼主看看是不是把http://www.btchina.net/的搜索给杀了
作者: neo007    时间: 2008-7-16 21:43

我是TW1.4版. 怎么无效啊. (试了个bibidu)
作者: 小絮    时间: 2008-7-16 22:25

回楼上:很抱歉,tw1.x目前的黑名单不支持正则,请您升级到tw2.x版本,其实新版本现在已经很稳定了。
作者: 狄烁stec    时间: 2008-7-17 21:11

忽然发现有编辑权限啦
更新一下规则,顺便定一下,嘿嘿

ps:最近的广告回帖真多哦...
作者: deepabyss    时间: 2008-8-29 18:33

......  用了这条规则,貌似把绿盟给废了
作者: 狄烁stec    时间: 2008-9-13 22:07

真不好意思,贴过来的时候忘了转义"<>"啦,更新一下
作者: ice-fire    时间: 2008-9-14 10:36

谢谢楼主,能持续更新很好啊!
作者: jingyun5985    时间: 2009-12-3 22:40

3.0有没有现成的过滤规则啊??
作者: vokins    时间: 2009-12-8 22:33

2008 10 18 版本
http://hi.baidu.com/blacklistbot ... 25af16b9127b99.html
  1. //数字组合
  2. #ex#<(A|SCRIPT|I(?:MG|FRAME)|EMBED|PARAM)\s+[^>]*?\b(?:CLASS|ID|NAME|HREF|SRC|VALUE)=(?=(?:[^\x20>]*?[-_\\\/.?="'])??([1-9]\d{1,2}[-_xX][1-9]\d{0,1}[05])(?:[-_\\\/.?="'&][^\x20>]*)??)([^\x20>]+)[^>]*?>(???!<\1[\s>])[\s\S])*?<\/\1>)?###<S STYLE="background-color:Silver;color:White;font-size:9pt" TITLE=$1[$3]>[$2]</S>
  3. //关键词
  4. #ex#<(A|SCRIPT|I(?:MG|FRAME)|EMBED|PARAM)\s+[^>]*?\b(?:CLASS|ID|NAME|HREF|SRC|VALUE)=(?=(?:[^\x20>]*?[-_\\\/.?="'])??(360quan|9v|a(?:d(?:\d+|banner|c(?:lick|ode)|files?|i(?:d|m(?:g|ages))|js|pic(?:s|tures|)|s(?:\d+|cripts|e(?:nce|rv(?:er|ing))|how|it|js|ky|union|view|)|to(?:p|logy)|union|v(?:\d+|all|code|er(?:salservers|t(?:ising)?|)|iew|)|)|l(?:i(?:mama|union)|l(?:4ad|yes\d*)))|b(?:anners?|iz5)|c(?:hinesefriendfinders?|l(?:ck?|ic(?:k(?:eye)?|))|p(?:[cdlmpsv]|ro))|d(?:annonces|otmore)|e(?:iv|te(?:un)?)|f(?:loat(?:adv?|)|ootad|unshion)|g(?:g(?:ao|img|pic|)|o(?:cpc|oglesyndication)|uang(?:g(?:ao)?|))|h(?:ao(?:ei|ye)|eima8)|i(?:dc|focus)|j(?:iaoyou|oy)|k(?:eyrun|oowo)|market|narrowad|p4p|qyule|s(?oe|pc(?:lick|ode)|tat)|tuotu|u(?:link|n(?:i(?:gg|on(?:sky)?)|stat|)|usee)|vo(?:done|gate)|webgame|y(?:eeyoo|igao))(?:[-_\\\/.?="'&][^\x20>]*)??)([^\x20>]+)[^>]*?>(???!<\1[\s>])[\s\S])*?<\/\1>)?###<S STYLE="background-color:Silver;color:White;font-size:9pt" TITLE=$1[$3]>[$2]</S>
  5. //脚本
  6. #ex#<SCRIPT[^>]*>(??!<\/SCRIPT>)[\s\S])*?(?:[-_/."'?=]|^)(google(?:syndication|_ad)|alimama|allyes|sogou_param|cpro)[-_/."'?=](??!<\/SCRIPT>)[\s\S])*?<\/SCRIPT>###<S STYLE="background:#EEE;color:#FFF;font-size:9pt" TITLE="SCRIPT">[$1]</S>
  7. // AD DIV
  8. #ex#<DIV\s+[^>]*?\b(?:CLASS|ID)=(?=(?:[^\x20>]*?[-_\\\/.?="'])??(ad\d*?|b(?:anner|dfs\d+))(?:[-_\\\/.?="'&][^\x20>]*)??)([^\x20>]+)[^>]*?>(??!<DIV)[\s\S])*?</DIV>###<S STYLE="background-color:Silver;color:White;font-size:9pt" TITLE=DIV[$3]>[$2]</S>
  9. // <!-- AD begin -->...<!-- AD end -->
  10. #ex#<!--(ads?) begin-->[\s\S]+?<!--\1 end-->###<S STYLE="background:#EEE;color:#FFF;font-size:9pt" TITLE="&lt;!--&gt;">[$1]</S>
  11. // 其他
  12. #ex#waitingTime\s*=\s*\d+###waitingTime=0
  13. #ex#beginPosition != -1###true
  14. #ex#beginPosition <0###false
  15. // 给<iframe>加双线框
  16. #ex#</head>###<style type="text/css"><!--iframe {border:3px double #9cf}--></style>
  17. // 霏凡显示真实下载地址
  18. #exd#*crsky.com*#'\s\+\sadlist\s\+\s'###
  19. // 9lala漫画批量下载
  20. #exd#*www.9lala.com/html/*#<div [^>]+><img src="(http:\/\/mh\d*.9lala.com/(?:[^/]+/)+?)1.jpg"></div>[\S\s]+?<div align="center">本漫画共<[^>]+>(\d+)<[^>]+>[\s\S]+?</div>###<script language="JavaScript">var maxpage=$2;for (var i=1;i<=maxpage;i++){document.writeln('<img src="$1'+i+'.jpg" width="32" height="32" title="'+i+'" />'+i);if (i%10==0){document.writeln('<br>')}}</script>$&
复制代码





欢迎光临 世界之窗论坛 (http://bbs.theworld.cn/) Powered by Discuz! 7.2