返回列表 发帖
如果能有好的办法,还是过滤掉比较好,难道没有什么办法能过滤吗?同样的过滤,我确实在maxthon的源码里找不到这些遗留的code了,想想办法吧

TOP

我们过滤广告的目的就是用最小的资源成本达到最好的视觉效果,所以过滤广告没必要将所有的广告代码全清理掉,只要能阻止广告的下载和显示就可以了,至于源代码是否过滤干净我觉得没必要理会。
以下是百度的推广广告代码:

  1. <script type='text/javascript'>
  2. cpro_client='hahawx_cpr';
  3. cpro_at='text_image';
  4. cpro_161=4;
  5. cpro_flush=4;
  6. cpro_uap=1;
  7. cpro_w=728;
  8. cpro_h=90;
  9. cpro_template='text_default_728_90';
  10. cpro_cbd='#86AC5F';
  11. cpro_cbg='#FFFFFF';
  12. cpro_ctitle='#0000ff';
  13. cpro_cdesc='#444444';
  14. cpro_curl='#008000';
  15. cpro_cflush='#e10900';
  16. </script>
  17. <script language="JavaScript" type="text/javascript" src="http://cpro.baidu.com/cpro/ui/cp.js"></script>
复制代码
真正起作用的是这一句:

  1. <script language="JavaScript" type="text/javascript" src="http://cpro.baidu.com/cpro/ui/cp.js"></script>
复制代码
我们只需要屏蔽这一句,百度的推广广告就不会下载更不会显示出来了,从而也达到了我们的过滤目的。剩下的代码,既然不影响网页的显示,何必要赶尽杀绝?
tw2的过滤规则写法有好几种:
1、过滤与特征符有关的所有下载。
     从百度推广广告的代码分析比较有特点的字符是cpro,所以我们可以选用cpro作为过滤特征符,于是规则可以写成:
  1. *cpro*
复制代码
  1. /cpro/
复制代码
其中"/cpro/"这样的过滤方法是可以支持正则表达式的

2、替换源代码的过滤方法
     这是tw2才推出的比较强大的过滤方法,过滤的内容可以控制得非常精确,规则可以这样写:
  1. #ex#<script[^>]*?cpro\.baidu[\s\S]*?</script>###
复制代码

[ 本帖最后由 小絮 于 2008-8-4 21:13 编辑 ]

TOP

回复 13# jiechu 的帖子

实在要过滤也是可以的,就如你给出的2个例子,可以用"[^<]*?"即匹配到出现"<"为止,这也正是<script>...</script>中,后一个</script>的开头,如果要结合其他内容,也可以用类似的思路,总之过滤使用到的正则表达式并没有什么固定的格式,一切都是以能达到目的为主,所以,有时候稍微转个弯就可以了

TOP

我实现方法一般比较狠.直接把 代码段都删除..要是在最后的话.最好..直接 </html>都给他去了..要是不是最后[\s\S]*? 清除了也行..不过要看清楚哪行干什么的..呵呵

TOP

我开始试用proxomitron, 功能很强大,Maxthon在部分模仿这个工具的功能。

TOP

返回列表