一般来说 现在主流的浏览器本身都带有广告屏蔽功能的 就算没有也有专门的插件 (汗...插件就不算单独的软件了....) 理论上来说 单独的广告屏蔽软件是越来越没有市场了 不过我还是比较喜欢这个软件的 用起来比较舒服 而且感觉他使用起来很方便 定义好之后还可以对应所有浏览器 像我opera+IE一起用 只要定义这一个软件就都有效果了前两天无聊的时候写的 因为很简单 就没往这边放 这里高人林立啊........
没想到居然被phoenix发现了 就发过来吧
先是下载Proxomitron和sidki的规则包 这个规则包很强大 已经屏蔽了很多的广告 几乎不用修改什么 而且有强大的debug功能 发现有误操作的话 也有很简单的办法补救(详见这里 在下面有详细的解释如何利用debug功能来查找是哪条规则对哪块代码起作用 知道了这些之后 就可以很轻松来解决误杀问题)
至于屏蔽 sidki包已经解决了大部分的广告问题 如果还是有 或者说其实不是广告 但是想去掉的东西 就需要自己来做了 其实作法很简单 找到要屏蔽的代码 然后COPY到软件里就行了 而且Proxomitron里还有TEST功能 可以很方便的检查屏蔽是否成功
就用我的blog的head来举例好了
如果想弄掉这个大蓝框 先把Proxomitron关掉 防止影响显示出的源代码 然后查看http://ddandyy.javaeye.com/的源代码 找到这个框的代码是
Code: Select all
<div id="branding" class="clearfix">
<div id="blog_name"><h1><a href="/">ddandyy</a></h1></div>
<div id="blog_preview"><a href="/admin">管理我的博客</a></div>
<div id="blog_domain">永久域名 <a href="/">http://ddandyy.javaeye.com</a></div>
</div>
这段代码的头是<div id="branding" class="clearfix">搜索了一下 同页没有同名的 这就方便多了 (一般来说 现在CSS非常流行 同一个页面里 想屏蔽的地方 很少会有同名的 所以不会出误杀 如果有同名的 那就要用其他规则来限制一下 小心误杀) 把Proxomitron打开 点击窗口里的Webpage按钮 (我使用了这个皮肤 所以按钮的位置和默认的不一样 如果没用这个皮肤的话 就要按名字找一下了)
也就是图A的地方 图B的那个按钮是用来控制是否启用的 按下去之后 就是不过滤状态
点击之后 会弹出一个窗口 点击里面的 New
针对这次过滤 填入的内容是图式里的内容
A是这个过滤的名字 随便起 最好是自己能记住的 找起来方便的 Proxomitron有搜索功能 以后找起来会方便一些 这个下面修改这个规则的地方有用到
B的地方是起作用的URL 和类型 这个地方支持正则表达式 这里我写了ddandyy.javaeye.com/ 如果写的是 *.javaeye.com/ 的话 就会把和这个URL匹配的 也就是我浏览JavaEye所有人BLOG上面的head都给删掉了
C的地方就是这次我们要屏蔽掉的东西了 把上面的代码COPY到里面 把头留下 然后找结束的地方 是</div> 因为语句中间有好几个div 所以就按个数 放入了</div> 这句的意思是 遇到<div id="branding" class="clearfix"> 他就开始记录 记录到第4个</div> 这时候注意看右边的E 那里有个数字 我写的是300 也就是这句过滤语句最多过滤300个字节的字符串 如果符合C里面的过滤条件 但是字符串长度超过E的字节数 也是不会被过滤掉的
D的地方就是定义把C过滤成什么样子 因为是想删掉他 所以就写句注释语句 在页面上显示不出来
一般来说这样就够了 可是这个语句会不会起作用呢? 这时候就要看右边了 还有个F 是一个button 写的TEST 点一下看看吧
这个界面很简单 只有上面两个窗口 把要过滤的代码COPY到上面的窗口个 然后点一个 左上角的TEST按钮 下面就会出现结果了
比如上面的那些语句写好之后 我们现在点一下TEST
下面出现了定义好的过滤后的话 这说明过滤成功 他会把上面的语句过滤成这个样子 如果过滤不成功的话 比如我改了改上面的语句 再点TEST 下面就会出现
如果点击TEST旁边的 Profile 按钮 就会在下面显示上面的框里的字节数 比如我们要过滤的这段是279字节 如下图 所以我在前面定义了过滤300字节 (其实写279就够了)
好了 现在既然已经确定没问题了 点击done 回到上一个窗口 然后点OK保存 回到主窗口 记得把规则前面的勾打上 这样才会有效果 如果不打勾表示不使用这个规则
然后在点击下面的OK 回到主窗口 点一下上面的保存图标 然后在打开过滤
再刷新一下http://ddandyy.javaeye.com/ OK 上面的框已经无影无踪了 而且没有空白
可是只有这样是不够的... 因为那个框里有link啊 现在这一过滤 那个link也没了 那怎么办呢 重新看一下要过滤的那段语句 那里面有3个link
Code: Select all
<div id="blog_name"><h1><a href="/">ddandyy</a></h1></div>
<div id="blog_preview"><a href="/admin">管理我的博客</a></div>
<div id="blog_domain">永久域名 <a href="/">http://ddandyy.javaeye.com</a></div>
重新打开Proxomitron的窗口 在点击Webpage的界面下面 输入 javaeye blog 也就是刚才定义的规则的名字 恩 那条规则就出来了
双击他或者点击右边的edit来重新编辑这个规则(右边的cut是删除) 只要改里面的Matching Expression和下面的Replacement Text就行了 也就是刚才说过的C和D 改完之后是这样
这里用到了一种变量 \数字 数字里支持0-9 在匹配语句里使用 匹配的东西类似于* 只不过他会把想匹配的字符记下来 这样可以在下面重新使用他 让他出现在新的地方
第一个link比较简单 被h1包围 只要匹配h1中间就行了
后面的两个 我分别留下了里面的link和a包围的字
然后在最下面还原了这3个link 后面加了BR让他们换行
因为是例子 所以很简陋 先TEST一下吧 看看这样写行不行
出来了 好像是可以的 保存一下看看吧 保存之后 再刷新网页.....
3个link都显示出来了
其实这个例子里面 写的代码都很简陋 这些代码只是为了让不熟悉的人能看得很明白 知道用很简单的语句就能应付几乎所有的情况了
Proxomitron有很多命令可以简化语句 比如 $NEST 可以直接用来匹配嵌套标记 不用像上面的例子一样还要数着中间有多少个<div> $LST 可以指定一个blocklist名字 直接在那个文件里写匹配字符串就可以 他会把网页里所有匹配的代码 全过滤掉 等等
Proxomitron的自带的帮助文件里有很详细的具体的教程 还有例子可以参考