ABP、ADSafe之流的广告屏蔽插件一直都是用户爱站长恨的东西,作为一名更多时候是用户的小站长,我也不能免俗的将这两种插件都安装了,因为很多网站的广告实在是让我有一种吃重庆辣子鸡的赶脚,在一大堆广告的末尾才能找到一点点我想要的东西,而且那些广告内容我也不想提了;不过作为一名站长,我更不能免俗,为了能抵消一部分购买空间的费用,我的论坛也挂了小联盟的广告,可这小联盟真不靠谱啊,全都是一些风骚露骨的聊天室软件,不过中间还会穿插一些可以接受的淘宝店铺的广告,也是让我十分无奈,所以我又想办法挂了一些能让大家接受的网址导航,并且给予了点击奖励,不过用户少,所以回报也小,呃。。。忽然发现吐苦水好像有点跑题了,趁着没跑太远赶紧拉回来~~

下面我就以我最熟悉的discuz来说说如何反屏蔽!

【注意】
本文适用于在discuz广告位里放置自己手动加的链接被屏蔽的情况,其他程序如wordpress等可以参照本文的方法修改,百度联盟等联盟广告,由于广告代码具有固定格式,所以可能需要将其代码变形才能达到反屏蔽效果。

首先我们来了解一下广告屏蔽插件的原理:通过使用ABP、ADSafe这两种屏蔽插件的多次测试发现,对于像discuz这种自带广告位的程序,由于广告位的class或者id都是固定的,所以通过屏蔽相应的class或id就可以达到屏蔽整个广告位的效果,而不是只屏蔽广告内容,就好像你不想要杯里的水,他就把水和杯子一起拿走了,干得相当彻底。。。对于广告联盟的屏蔽也是这个道理,各联盟的广告代码都有自己的格式,稍加整理就会发现其中的规则,这也就是广告屏蔽的规则,所以我才在前面说本文的方法对于联盟广告可能无效,如果您能想出方法改变联盟广告代码中的规则,应该就能实现对联盟广告的反屏蔽了。

了解了原理下面就好办了,插件是通过默认的固定class或id屏蔽我的广告位,那我修改下广告位的class或id不就可以了么?有了这个大思路就可以动手了!

首先要查找正在使用的广告位的代码,显示广告位的前提下,在广告位上点右键审查元素,找到广告位相应的代码,如图:
discuz广告位代码

从图中可以明显的看出discuz广告位框架为:

<div class="wp a_ssk_t">一些广告内容代码</div>

这只是格子广告的代码,而且还是我修改过的,discuz默认的格子广告代码为:

<div class="wp a_t">

我们的广告屏蔽插件就是根据这个class="wp a_t"来屏蔽格子广告位的,只要改变了这个class值就可以显示了,我论坛已经修改了,所以现在都可以显示,记下这个class的值就要去我们现在使用的模板中找到相应的位置了。 我已经整理出现我论坛正在使用的模板包含的各种广告位代码,其他模板的代码也是基本相同的,因为discuz的广告位都是固定的,我的模板文件夹名为:jeavi_engine 下载地址:Engine! 【价值480元Discuz商业模板】【GBK & UTF8】(jeavi_engine) - 模板插件 - 91淘新会 也就是discuz的template\jeavi_engine目录,您可以参照我列出的文件去查找您自己的模板,包含广告位的文件如下(不一定全都找到了,不过还是很全面的):

【CSS】
    【文件】template\default\common\common.css
    (注意:如果模板没有自带的广告样式,那么默认调用本文件中的广告样式)

【全局 页头通栏广告】
    【文件】template\jeavi_engine\common\header.php
    【代码】<!--{ad/headerbanner/wp a_h}-->

    【css】.a_h

【全局 页头二级导航栏广告】
    【文件】template\jeavi_engine\common\header.php
    【代码】<!--{ad/subnavbanner/wp a_mu}-->

    【css】.a_mu

【全局 页尾通栏广告】
    【文件】template\jeavi_engine\common\footer.php
    【代码】<!--{ad/footerbanner/wp a_f/1}-->
            <!--{ad/footerbanner/wp a_f/2}-->
            <!--{ad/footerbanner/wp a_f/3}-->

    【css】.a_f

【门户/论坛/群组/空间 格子广告】
    【文件】template\jeavi_engine\forum\discuz.htm
            template\jeavi_engine\forum\forumdisplay.php
            template\jeavi_engine\forum\viewthread.php
            template\jeavi_engine\portal\list_xxooxxwtf.htm
            template\jeavi_engine\portal\list_xxooxxwtftow.htm
            template\jeavi_engine\portal\view_xxooxxwtf.htm
    【代码】<!--{ad/text/wp a_t}-->

    【css】.a_t

【论坛/群组 帖内广告】
    【文件】template\jeavi_engine\forum\viewthread_node.php
    【代码】<!--{ad ad_a_pr/thread/a_pr/3/$postcount}-->
            <!--{if empty($ad_a_pr_css)}-->
            <!--{eval $ad_a_pr_css=1;}-->
            <!--{ad/thread/a_pt/2/$postcount}-->
            <!--{ad/thread/a_pb/1/$postcount}-->

    【css】.a_pr .a_pt .a_pb

【全局 漂浮广告】
    【文件】template\jeavi_engine\common\footer.php
    【代码】<!--{ad/float/a_fl/1}-->
            <!--{ad/float/a_fr/2}-->

    【css】.a_fl, .a_fr

【全局 对联广告】
    【文件】template\jeavi_engine\common\footer.php
    【代码】<!--{ad/couplebanner/a_fl a_cb/1}-->
            <!--{ad/couplebanner/a_fr a_cb/2}-->

    【css】.a_cb

【全局 右下角广告】
    【文件】template\jeavi_engine\common\footer.php
    【代码】<!--{ad/cornerbanner/a_cn}-->

    【css】.a_cn

【论坛 分类间广告】
    【文件】template\jeavi_engine\forum\discuz.htm
    【代码】<!--{ad/intercat/bm a_c/-1}-->
            <!--{ad/intercat/bm a_c/$cat[fid]}-->

    【css】.a_c

【论坛/群组 帖间通栏广告】
    【文件】template\jeavi_engine\forum\viewthread_node.php
    【代码】<!--{ad/interthread/a_p/$postcount}-->

    【css】.a_p

我尽可能的将所有的代码都列举出来了,不过也不排除代码找到眼花被漏掉的,您需要对以上代码中的【代码】【css】两部分做修改,

代码说明:
我用格子广告举个栗子,
代码:<!--{ad/text/wp a_t}-->
ad:广告标识,说明本代码为广告代码
text:广告类型,在 后台 — 运营 — 站点广告 - 广告位 中可以看到格子广告位的链接如:admin.php?action=adv&operation=ad&type=text,type=后面接的就是广告类型,其他类型如interthread、intercat等
wp a_t:广告代码的CSS样式名,论坛中的体现形式为:<div class="wp a_t">广告代码</div>,这是屏蔽广告代码的关键所在,因为屏蔽插件是根据class或id屏蔽的,所以我们改的就是这个,其他样式如wp a_h、a_cn、a_pt等,广告代码的默认css样式储存在template\default\common\common.css文件中

修改方法:
1、代码修改:

<!--{ad/text/wp a_t}-->

将样式名 at 修改或添加一些字符,我选择的是在 a 后面添加 ssk_ ,改为 a_ssk_t 也就是将代码改为:

<!--{ad/text/wp a_ssk_t}-->

其他的也都是在中间加入ssk_,推荐这种改法,因为这样修改后代码比较规矩,可以知道原先的代码,而且在修改css时也比较省力,您可以将ssk换为其他您喜欢字符,一定要个性化啊,不能跟别人的相同,不然一段时间后又会被屏蔽掉了!
然后去css文件中(template\default\common\common.css)找到相应的规则,如果改的是a_t就搜索a_t,然后将搜索到的规则名修改即可。

【注意】
<!--{ad/text/wp a_t}-->像【wp at】这种css样式名带有空格的,表示此处使用了两个样式,空格前后为独立样式,只有 a 开头的才是广告位专用的样式,其他为公共样式,只能修改 a_ 开头的,如果修改其他则会导致论坛样式错乱!

【个人猜想】
如果能向广告样式中添加随机字符,可能就是一种强有力的防屏蔽手段,因为每次样式都不同,不过css规则对我来说就成了问题,不知道css中是否也支持随机字符或者是模糊字符匹配,这样就可以随着样式的变化而变化或者直接忽略掉样式中的随机字符直接匹配。如果您知道相关信息或者有更好的想法可以留言回复我!

经过上面的一番折腾,后台更新一下discuz的缓存就可以看到效果啦!祝各位修改成功,早日赚个盆满钵满!我的那些事

最后修改:2020 年 03 月 15 日 04 : 05 PM
如果觉得我的文章对你有用,请随意赞赏