Ad Muncher规则制作教程(2012.12.16) ad muncher cjx

Ad Muncher简称“adm、奶牛”,其广告过滤功能几乎支持所有浏览器和联网软件,但需要结合完善的规则。所以为方便你我他,本人义务制作与维护CJX规则http://bbs.kafan.cn/thread-1133619-1-1.html在此过程中积累了一些经验,梳理一下与大家分享。

一、准备

IE8以上

Ad Muncher CJX绿色版 http://cjx82630.ys168.com/

打开选项Options > 过滤对象Filter Targets > 我的过滤对象My filter targets添加:-firefox:*

下载安装火狐作为辅助 http://www.mozilla.org/en-US/firefox/all.html

添加Firebug https://addons.mozilla.org/zh-CN/firefox/addon/firebug/

添加adblock plus并订阅规则 https://addons.mozilla.org/zh-CN/firefox/addon/adblock-plus/

添加Element Hiding Helper http://adblockplus.org/zh_CN/elemhidehelper

ctrl+shift+F快捷键打开adblock plus首选项,逐条添加自定规则,并取消默认启用的勾选:

$script

$subdocument



参考资料:自行搜索下载HTML、CSS、javascript教程:w3school(3.0).chm

二、过滤浏览器广告

简述:以火狐、adm的logs为辅助手段,先屏蔽脚本,再移除图片、帧、链接等,然后CSS规则,移除div等的次序制作规则,尽量在所有浏览器过滤广告,其中IE不支持高级CSS选择器需要变通。

1、不进行过滤的链接(No filtering on URL)

如误拦可以添加白名单,优先于过滤的规则。查看记录logs误拦了什么就添加什么链接,或某网页不想过滤,添加地址栏网址;无效则选不过滤匹配的关键词Don't match against keywor。

添加规则的方法:事先复制网址或关键字,点击自定义规则My Filters>新建New>粘贴网址或关键字到左边空白框>点击右侧空白框选择过滤类型



2、不过滤匹配的关键词(Don't match against keyword)

如过滤链接、移除脚本、移除div/spn、table、form存在误拦的话,可以添加此规则。

3、只进行最小过滤的链接(Minimal filtering on URL)

适用于adm不兼容的网页,或CSS规则误拦,如Minimal filtering on URL: /qzone/client/photo/*.htm

4、允许弹出带链接的窗口(Allow popups with URL)

adm自带防弹窗功能,但有时会误拦弹窗,如点击链接没反应。查看记录logs > Blocked popup URLs有记录,双击添加规则,例如Allow popups with URL: /ju

5、阻止访问的链接(Block retrieval of URL)

建议优先过滤js、php等脚本文件,因为很多时候,框架、图片等是由脚本召唤控制的。在火狐打开 http://www.ct10000.com/用ctrl+shift+V快捷键呼出“可过滤项目”,如图点击,过滤所有脚本。



F5刷新,查看哪些部分被过滤。左下角视频窗口不见了,如刚好想屏蔽它,那么就找出属于哪个脚本。再次点击取消过滤脚本并刷新。

方法1:全选脚本(按住ctl添加或shift选范围),右键点击选择“在新标签页打开”,逐个查看。脚本太多则看方法2;

方法2:按F12呼出Firebug,用左边的点选工具点广告(图示看第2点之2),复制某个广告图片的地址或所在id、class的名称,然后点击“脚本”标签(可能要重新载入),进行搜索。如果在某个脚本文件里,查看内容以免误拦,然后加规则;以 http://bf2.7m.cn/ 为例截图说明



方法3:不懂则用土办法:双击某个脚本网址,选择上面完整网址的选项添加规则并刷新。先尝试过滤大的域名,后尝试具体网址直至成功,记得最后把无关规则禁用。



把abp规则转换为adm规则,右键点击||ct10000.com/images/2008/swfobject.js选择“复制过滤规则”,点击adm的我的规则My Filters,点击新建New,粘帖,删除开头双管线,选择阻止访问的链接Block retrieval of URL,点击Apply。

转换abp的$script规则到adm:多数可用 *.js 代替,例||pfp.sina.com.cn^$script 转换为阻止访问的链接Block retrieval of URL: pfp.sina.com.cn*.js ;少数用*.php等

阻止访问的链接Block retrieval of URL的特点,只要http“链接”(adm到5.X才支持https)匹配规则的关键词、链接、文本都会被屏蔽。比如阻止访问的链接Block retrieval of URL: www 屏蔽所有含“www”的链接。默认在规则前后含通配符*,只是没显示出来的,有时为了区分,在开头会有“.”或“/”,例阻止访问的链接Block retrieval of URL: /s.360.cn;在规则内可使用通配符*,不支持正则,忽略大小写。

6、移除含文本的脚本(Remove scripts with text)

(1)去除下拉窗口

打开电信网站时,顶部自动下拉一张图片,推测在HTML内嵌了JavaScript脚本,单纯过滤图片也会下拉一个白板,可采用添加CSS规则Add CSS to all pages: #ads {display:none;}(即俗说的“元素隐藏”,但ad muncher不是隐藏是删除),但建议优先删除内嵌脚本:

在火狐刷新网页,在下拉窗口上点右键,选择用Firebug查看(窗口下可能只出现一横条,把它拉高),通常内嵌脚本就在附近,此例在上面那个<script type="text/javascript">,点击+号查看具体内容。不懂不要紧,重点查看图片网址或所属id、class名称(本例图片在div id=“ads”)的有关文本,在中间看到几行document.getElementById("ads").style.复制所列文本,通常要求含括号“(”,在adm选择Remove scripts with text。

这会移除所在的<script type="text/javascript">所含内嵌文本,如果误杀其它元素就放弃使用。在IE刷新查看,没有下拉了(每次点击“应用Apply”都会清除IE缓存所以即时生效,火狐、chrome等需要ctrl+shift+del快捷键删除缓存)。



(2)去除“我的e家”动画

在火狐移动鼠标到flash上,浮现“屏蔽”,点击弹出窗口,在自定义栏复制地址ct10000.com/images/2008/index/index3.swf(前面的http等不需要),在adm添加移除链接的图片Remove images/etc with URL。此方式在其它例子可能无效,则改为阻止访问的链接Block retrieval of URL,但会留下白板,更好的方式是采取CSS选择器object[src*="链接"] {display:none;} 或移除div/spn方式。

出于谨慎也可查看相关代码,在动画上不能右键,使用Firebug点选定位,有时会自动刷新没了,则点路径embed<object<...上翻下翻,又看到了内嵌脚本。优先去除脚本,复制 document.write('<embed src="http://www.360doc.com/images/2008/index/index3.swf;在adm添加Remove scripts with text,可使用通配符*即document.write(*/images/2008/index/index3.swf

移除含文本的脚本Remove scripts with text官方规则很多是:document.getElementById、document.write 、push等命令,再加小括号“(”,最后加元素名称、网址等作为区分的关键字。有兴趣了解javascript,参看http://www.w3school.com.cn/js/index.asp



7.移除带链接的图片等(Remove images/etc with URL)

此方式操作简单,例:左边中国地图下图片。可以在IE,右键点击查看属性,复制地址ct10000.com/images/2008/zzfw_title_new.jpg。在adm添加移除带链接的图片等Remove images/etc with URL,能去除占位符;假如用阻止访问的链接Block retrieval of URL是不能的,会留下白板。



移除带链接的图片等Remove images/etc with URL的特点:有效过滤图片jpg、gif、png、bmp、帧htm、html、shtml,部分swf等,而且去占位符,但不能像阻止访问的链接Block retrieval of URL一样彻底屏蔽链接,制作规则的要求类似Block retrieval of URL。

关于“帧htm、html、shtml”,点击火狐“可过滤项目”$subdocument,可自动定位查看是否属于广告,根据火狐给出的地址添加规则移除带链接的图片等Remove images/etc with URL: ct10000.com/images/search.html;也可采取CSS方式,但必须Firebug定位代码,在iframe查看地址。如果地址含域名、区分度好,则采取添加CSS规则Add CSS to all pages: iframe[src="url"] {display:none;};否则采取javascript方式,本例就需要这样:Add javascript to all pages: if(__amscript_cd(".ct10000.com")){__amscript_wc('iframe[src="http://www.360doc.com/images/search.html"] {display:none;}');};



8、移除链接地址(Remove links to URL)

在火狐,鼠标悬停到“自助服务”,下面有几个文字选项,去除“手机号码归属地查询”。用Firebug点选,定位代码,有时自动刷新没了,则点路径,高亮<a href="/main/services/04/">手机号码归属地查询</a>,双击/main/services/04/,然后复制,在adm添加移除链接地址Remove links to URL,注意这是网站本地的路径所以省略了ct10000.com,应该在添加规则时补充:移除链接地址Remove links to URL: ct10000.com/main/services/04/

本人很少用,也只用于<a href="超链接">文本或图片</a>,平时上网点击文本或图片等跳转到的地址,就是所说的“超链接”。使用此过滤方式时,“超链接”应属于广告联盟的、罕见的、精确不容易误杀的。能移除含超链接的所有文本和图片等,以及占位符,强悍但易误杀,可以自行添加查看移除链接地址Remove links to URL: ct10000.com/main/services/



9、添加CSS到所有页面(Add CSS to all pages)

制作过滤规则要懂CSS选择器,但无需达到制作网页的水平,参看http://bbs.maxthon.cn/forum.php?mod=viewthread&tid=369613 弄懂后,再次开始实战。可以借助Element Hiding Helper http://adblockplus.org/zh_CN/elemhidehelper

(1)不显示元素:CSS选择器 {display:none;}

在火狐叫“元素隐藏”,隐藏且下载;在adm,是直接改写代码不会下载,能提高网页载入速度。占所有CSS规则的99%左右。

去除“我的e家”下面最右边的“天翼”方框,用Firebug点选,定位代码,复制“ty”,在adm添加Add CSS to all pages: .ty {display:none;} 在IE刷新看看;



也可以把3个小框都去掉,选取.ty上一层.brand_area,即 Add CSS to all pages: .brand_area {display:none;} 注意:此例可以成功跨层过滤。代码里有许多的层,好比地下室有3层,但有时候过滤最上面的负一层,不能过滤最底下的负3层。如无效就多尝试;

去掉上面的菜单栏:: Add CSS to all pages: .menu_area {display:none;}注意:第5点添加的不进行过滤的文字都抹杀了;

去除“我的e家”空白框:td[width="556"][height="168"] {display:none;} ;注意:成功去掉后附近元素会填补,中国地图从左边挪到中间。这条规则在chrome等新版浏览器、IE9非兼容模式有效,但IE9兼容模式(IE7核心)无效——中国地图还在左边。IE9完整支持CSS2选择器并支持绝大部分CSS3选择器,但低版本IE不支持CSS3高级选择器,例如:.space_wz > div:nth-child(3) ;.t5[style^="margin-top:8px;"]替代的做法是使用Remove divs/spans with text等方式删除代码,以后说。

上面的3条规则可以整合为1条,为了方便区分和简洁,每条用英文半角逗号隔开,{display:none;}前留一个空格:Add CSS to all pages: td[width="556"][height="168"],.brand_area,.menu_area {display:none;}其它的例子还有:Add CSS to all pages: iframe[src*="/configs/article/"] {display:none;};Add CSS to all pages: .ch[onclick="ga(this,event)"] {display:none;} 等等。

通常{display:none;}即可,但少数情况下会无效,要添加强调{display: none !important;}



(2)去除背景图片:CSS选择器 {background-image:none !important;}

用Firebug点选背景,定位到“body”,切换至“CSS”,搜索并悬停background-image: url...确认目标。在adm添加Add CSS to all pages: body{background-image:none !important;}



(3)指定字体:CSS选择器 {font-family: "字体" !important;}

adm不但能过滤广告,还有其它功能,试把网页换个字体。通过用Firebug点选,发现代码由"<a "开头,在adm添加Add CSS to all pages: a {font-family: "字体" !important;} ;打开控制面板>字体>右键点击某字体查看名称,比如华文琥珀是“STHUPO.TTF”,复制替换“字体”为“STHUPO”;如无效则换为字体属性>详细信息>标题,比如“楷体”。另外一例:全局字体是楷体,字体大小为16px:Add CSS to all pages: * {font-family: "楷体"; font-size: 16px !important;}



(4)指定高度:CSS选择器 {height:*px !important;}

指定像素,或去除里面元素后用{height:auto;}例如youku首页空白.row_index.row_index_1 {height:auto;}

注意,class存在空格的写法应是把空格替换为点“.”;另外,同时有id和class,取其一而无效则取全部,例如#wp.wp.cl 对应<div id="wp">要实现更多CSS的效果,查看教程http://www.w3school.com.cn/css/

(5)避免使用[id^="ad_"]:not(#ad_square)这种含“:not”的选择器,已知无效

10、添加javascript到所有页面(Add javascript to all pages)

(1)指定CSS规则作用于某个域名

CSS规则需要结合Add javascript to all pages才能把作用范围限定在指定域名。注意:除非同时开启官方规则,javascript规则必须放在CJX规则的一条以 /*3a*/function __amscript_try... 为开头的规则下面,否则出错。

以上面电信网站为例添加规则:关闭adm,打开安装目录,以记事本打开CustomStrings.dat,往下拖到前述规则,在其下空一行,复制空行下面的一行规则替换空行,更改域名(不要填入详细地址,如.ct10000.com/images/)、更改CSS规则,最后保存,重新打开adm。添加如下:Add javascript to all pages: if(__amscript_cd(".ct10000.com")){__amscript_wc('td[width="556"][height="168"],.brand_area,.menu_area {display:none;}');};

格式:Add javascript to all pages: if(__amscript_cd("域名")){__amscript_wc('任何CSS规则');};



注意:过滤限定域名的动画、图片、帧示例如下Add javascript to all pages: if(__amscript_cd("域名")){__amscript_wc('object[src*="动画地址"],img[src*="图片地址"],iframe[src*="帧地址"] {display:none;}');};

(2)指定CSS规则作用于两个域名以上

两个域名的例子: if(__amscript_cd(".soku.com")||__amscript_cd(".youku.com")){__amscript_wc('[id^="ab_"] {display:none;}');}; 多加了 ||__amscript_cd(".youku.com")

四个域名的例子:if(__amscript_cd("iknow.baidu.com")||__amscript_cd("z.baidu.com")||__amscript_cd("zidao.baidu.com")||__amscript_cd("zhidao.baidu.com")){__amscript_wc('CSS');};

(3)指定两种以上CSS规则作用于域名

电信网站Add javascript to all pages: if(__amscript_cd(".ct10000.com")){__amscript_wc('td[width="556"][height="168"],.brand_area,.menu_area {display:none;} body {background-image:none !important;}');};仔细看{display:none;} 和 {background-image:none !important;}的附近

(4)使内嵌脚本的函数失效

例如:Add javascript to all pages: BAIDU_CLB_singleFillSlot=function(){}; 可以整合到前述规则,例如Add javascript to all pages: if(__amscript_cd(".ku6.")){ku_track=_st=function(){};__amscript_wc('.banner {display:none!important;}');};

(5)在加载完网页后运行脚本

基本格式是 __amscript_addonload("脚本");比如__amscript_addonload("if(typeof(ShowConfirmClose)=='function'){ShowConfirmClose();};"); 表示如果有确定关闭的选项则自动关闭。

可限定域名,例如Add javascript to all pages: if(__amscript_cd("360doc.com")){__amscript_addonload("document.body.oncopy=null");__amscript_wc('iframe[src*=".com/ad/"], #divadleft {display:none;}');};

要把多行脚本处理成单行,访问http://fmarcia.info/jsmin/test.html 把脚本粘贴到code方框,level选agressive,点JSMin。所使用的脚本,通常能在地址栏javascript:运行的都可以加入。但油猴那些特别的脚本不能拿来即用。

(6)对于判断cookie的广告可通过制作cookie避免

比如ithome.com首页弹出的通栏广告,按下面格式填写。Add javascript to all pages: if(__amscript_cd("ithome.com")){document.cookie='uy=uycls;domain=.ithome.com;path=/;expires=';__amscript_wc('#bbs_hl,#pop_notice,.hl_wrap,.side_products {display:none;}');};

11、移除含文本的表格(Remove tables with text)

当CSS规则无效才使用,因为CSS能精确定位不误杀,而移除div、table、form等易误杀,须采用区分度高的关键词。实战对象还是那个电信网 T_T

注意:建议代码取自adm的logs。在logs搜索,有很大机会出现变换关键词也找不到代码的情况,这就要详细查看logs了。再不行,就在网页上点击右键,选择查看“源文件”,继续搜索。而通过按F12键、Firebug查看HTML获取的代码经常无效。下面第10、11点同理。

去除底部“诚信网站、可信网站”,Firebug点选,发现用CSS写规则,IE会不支持,复制上层“table“(有时td、tbody也可)某个关键词,在adm的logs的Table texts项“Find all”搜索



逐个双击结果检视,确认目标后,保留易区分代码,其它代码用通配符代替或删除,add > apply.Remove tables with text: <table width="778" border="0" align="center" cellpadding="0" cellspacing="0">



如法往上删除两行

Remove tables with text: <table width="778" border="0" cellspacing="0" cellpadding="0">*<tr>*<td height="32">

Remove tables with text: <table width="778" border="0" align="center" cellpadding="0" cellspacing="0">



12、移除含文本的div层/span块(Remove divs/spans with text)

删除“帮助与支持”,优先用css去掉,但为讲解用此方式。Firebug点选,代码是<div>,在adm > logs > div/span text 搜索特征字“bzyzc”,双击结果,检视确认后,保留易区分的代码,其它代码用通配符代替、或删除,add > apply:Remove divs/spans with text: <div>*<table width="427" border="0" cellspacing="0" cellpadding="0">





13、移除含文本的表单(Remove forms with text)

用得极少。查看adm logs发现只有一项,如法炮制,能删除右上角搜索框,Remove forms with text: <form id=search name=search*action="http://search.chinatelecom.com.cn/was40/



14、移除链接中所有的弹窗(Remove all popups from URL)

电信网终于功成身退了,说说弹窗。比如访问某些下载种子的网页,特别是点击“download”后,疯狂弹窗,用这个过滤方式有效,例如:

Remove all popups from URL: .rmdown.com/link.php

15、移除带有“alt”文本的图片

完全没用过,官方也只有一条规则,无视,Remove images with "alt" text: ($("div#divbigbanner").

三、屏蔽软件广告

简述:以火狐、adm的logs为辅助手段制作规则,在使用原版软件的情况下屏蔽遇到的广告。ad muncher CJX定制版已经默认支持大多数软件。以下说一说制作规则的土办法:

1、安装一个软件后,如有广告,尝试在选项设置里关闭(资讯、自启动等);

2、无法关闭的话考虑屏蔽。通常小软件不会保存数据,可直接跳到第5步;但大些的软件,则往往保存数据。首先找到数据目录(在网站搜索或参考http://bbs.kafan.cn/thread-1133619-1-1.html快速使用说明第5、6点),如在文件夹地址栏输入并回车 %appdata% 或安装目录或win7的C:ProgramData或C:Documents and SettingsAll UsersApplication Data

3、通过翻看,确认广告所在的位置,例如com.tencent.advertisement、adsys、banner、notice、pluginad等文件夹,甚至在.ini、.xml、.zip等文件里;

4、清空文件夹广告、或用记事本打开.ini文件删除广告地址、通常可以直接删除.xml和.zip文件。不关闭这些文件夹以便观察再次下载广告的情况;

5、查看adm的logs的Retrieved URLs是否出现此软件相关的网址,有则说明已默认支持,无则到选项Options > 过滤对象Filter Targets选中软件进程,再点击过滤filter > 应用Apply加入列表;

6、在adm的记录logs的链接Retrieved URLs右下角点击“Clear”清除记录,关闭软件并重新打开,观察adm的logs,和电脑的文件夹;

7、打开火狐 > 选项 > 高级 > 立刻检查,设置火狐为默认浏览器,然后在adm logs Retrieved URLs每次选择几个网址打开查看,优先查看.ini、.htm、.zip、.xml的网址。

以QQ为例,最终确认“迷你首页”,写规则阻止访问的链接Block retrieval of URL: minisite*.qq.com/*.htm?;通过观察确认,“医生”会封杀修改版,写规则阻止访问的链接Block retrieval of URL: dl_dir.qq.com/qqfile/ims/qqdoctor/*. ;最后清空本地广告文件。

通常用阻止访问的链接Block retrieval of URL足够了,优先屏蔽.ini、.htm、.zip、.xml的网址,甚至某些无此后缀,但会下载这些文件的网址。少数规则去除脚本、移除div等。



四、文本替换

除了我的规则My Filters的15种过滤规则类型外,还有一个强大的文本替换工具,可以改写代码。通常在15种过滤规则类型无能为力时才使用文本替换。例如某个ad.js脚本文件包含正常内容与广告内容,如果用阻止访问的链接Block retrieval of URL: ad.js 虽然过滤了广告内容但也误杀了正常内容,而用文本替换可以只去掉广告内容。但对于日志logs出现的中止过滤Aborted filtering of connection due to unrecognised content encoding的链接无效。

使用过程:工具Tools>Replace Text文本替换>新建New>命名规则>输入被替换的文本>输入替换的文本

“被替换的文本”可以是浏览器地址栏出现的网址、网页源文件的代码。但避免选取网址的某一部分,以免被替换后出现空格而失效。建议刷新后查看被替换后的代码;

“替换的文本”可以留空(相当于删除被替换的文本)、少于或等于被替换文本字节的文本。通配符的用法见实例。

例:网页源文件的代码 var ifengcouplet3_width = 3*;**2**3;

替换为 var ifengcouplet3_width = 0;**0**0;

注意:单通配符表示一段代码,不保留。被替换的文本有单通配符时,替换的文本不能有单通配符;双通配符表示一段代码,会保留。被替换的文本有一组或多组双通配符时,替换的文本要有对应位置的双通配符

五、结语

总之,无论过滤浏览器,还是软件的广告,都可能要反复尝试;建议把所加规则过滤的相关网站、软件都里里外外翻看一遍,以免遗漏、误杀。

  

爱华网本文地址 » http://www.413yy.cn/a/25101012/108377.html

更多阅读

淘宝网店模板制作教程 淘宝店铺免费模板

淘宝网店模板制作教程——简介很多开淘宝店的朋友想把网店弄的好看一定,但是苦于不会制作模板,今天就分享一下淘宝网店模板的制作。 淘宝网店模板制作教程——工具/原料 photoshop图片相关素材 淘宝网店模板制作教程——方法/步骤

影视后期制作教程 影视剪辑软件

影视后期制作教程——简介影视后期制作会应用到很多的软件我钟爱ADOBE公司软件。下面我就来向大家简单的来介绍一下如何使用AE来制作视频。(当然制作会很简单,不过这是基本流程!)影视后期制作教程——工具/原料AE软件影视后期制作教程

火焰字_火焰字制作教程 火焰字制作

火焰字_火焰字制作教程——简介火焰字似乎很酷很流行,下面来分享一下如何用PS来制作文字的火焰效果。火焰字_火焰字制作教程——方法/步骤火焰字_火焰字制作教程 1、首先我们打开PS,建立一个黑色背景的文档,用常用电脑中的字体写上你

Flashcs6动画制作扫盲教程:12 引导层动画 精 精英家教网

Flashcs6动画制作扫盲教程:[12]引导层动画 精——简介我们知道传统补间动画主要用在对图形的移动、缩放、旋转等操作中,在这些动画中如果不使用引导线,那么有些动画我们只使用关键帧来做是相当麻烦的,比如蝴蝶的飞舞,如果不使用引导线来

圣诞贺卡制作教程 生日贺卡制作网站

圣诞贺卡制作教程——简介圣诞节怎么也少不了圣诞贺卡,而圣诞贺卡上的各种元素中怎么也少不了圣诞树。由于圣诞树独特的构造,使得立体圣诞贺卡中,圣诞树常常能够成为主角而出现在圣诞贺卡里。 圣诞贺卡制作教程——方法/步骤圣诞贺卡

声明:《Ad Muncher规则制作教程(2012.12.16) ad muncher cjx》为网友虐心控分享!如侵犯到您的合法权益请联系我们删除