返回列表 发帖
还是那个问题。你在选择过滤部分的时候尽量不要用这种没有唯一性的标识,我看了下这个网站,你要过滤的部分其实是这个
<iframe frameborder=0 src='http://www.booksky.org/qihoo1.htm' width='760' height='112' scrolling=no marginwidth=0 marginheight=0></iframe>

另外还有一点,假如必须选择</table>这种标识的话为了代码的严谨,过滤完之后也一定要补上的,不然页面可能会出问题

TOP

我先移到这里,等你改好了再移动到主版

TOP

可以在替换串里加上你先前过滤掉的需要补上的内容。

教程只能是这样啊,只是一个参考,大多数还是要自己试的

其实只要多试几次,慢慢的就有经验了

TOP

ok,你看这2个有什么区别?
<p align="center">
<p align=center>

实际上就是一个有"号,一个没有对吗?

再看一下正则表达式里?号的作用

? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。

明白应该如何了么?
(答案在下面,全选文字就能看到,建议你先不要看,自己先试试看)

只需要在"后面加上?就会变成同时匹配有"号或者没有"号的情况
即:<p align="?center"?>


[ 本帖最后由 elkay 于 2007-12-28 19:30 编辑 ]

TOP

晕~
你还是没明白我的意思。

通常情况下<p></p>是表示一个段落,页面中很可能不止一个,如果有其他的选择一般是不建议使用这个来过滤的。

你要过滤的那个网站首页,你要过滤的就是下面的内容
  1. <p align="center"><iframe frameborder=0 src='http://www.booksky.org/qihoo1.htm' width='760' height='112' scrolling=no marginwidth=0 marginheight=0></iframe><br></p>
复制代码

通常的作法是选择过滤这一段
  1. <iframe frameborder=0 src='http://www.booksky.org/qihoo1.htm' width='760' height='112' scrolling=no marginwidth=0 marginheight=0></iframe>
复制代码

这个iframe就是广告部分,而且里面的height='112' 指定了这个部分的高度,看一下这个页面的源文件,这个是唯一的,所以用这个来过滤,其实也可以选择src='http://www.booksky.org/qihoo1.htm'这个来过滤,这些都是不会对其他内容造成影响的

同一个页面的下面也有这么一段广告代码
  1. <iframe frameborder=0 src='http://code.comuce.com/bdcode/275.html?userid=6793' scrolling=no marginwidth=0 marginheight=0 width='760' height='110'></iframe>
复制代码


也就是这个页面中,这2个iframe就是广告,只要过滤掉这2个iframe就可以了
下面的正则表达式就可以匹配到所有的iframe,因为这个网页上只有2个iframe,下面的是可以的
  1. <iframe[^>]*?></iframe>
复制代码

但是如果有2个以上,并且其他的iframe都是正常内容的情况下,这个正则表达式就会有误杀现象。

所以必须要找一些有代表性的并且是唯一的东西来匹配,就像一开始说的,可以用高度,或者是链接的地址来匹配。
加入这里选择高度,那就是下面2条分别匹配到我们要过滤的部分。
  1. <iframe[^>]*?height='112'[^>]*?></iframe>
  2. <iframe[^>]*?height='110'[^>]*?></iframe>
复制代码

如何合并上面的2条呢?还是我前面帖子里说的,找一下他们的区别,这2条区别就在height后面的数值不一样,看一下教程里提供的正则表达式
  1. |
  2. "或"分隔符, 分隔多个表达式, 只须匹配其中一个.
  3. 例: th(is|at|ese|ose) 可以匹配 this, that, these 或 those.
复制代码


只要我们用"|"隔开2个不同的数字,其他部分就可以合并到一起了,你试试看能不能写出最后的规则。
(答案附在下面,一样建议不要看,先自己试试)
<iframe[^>]*?height='(?:112|110)'[^>]*?></iframe>

TOP

回复 13# 的帖子

tw的正则引擎是不区分大小写的,所以不需要考虑这个问题

ps:你测试一下没问题就去主版重新发个帖子吧

[ 本帖最后由 elkay 于 2007-12-29 15:14 编辑 ]

TOP

回复 15# 的帖子

其实还有小小的问题
<script src="http://www.google-analytics.com/urchin.js" type="text/javascript">

这个并不是广告脚本,只是一个统计脚本,一般是不需要过滤的

ps:你的规则中第二条写的有些问题,是匹配不到这个脚本的.
<script type=
你直接就跳过了链接部分,是无法匹配到的

TOP

这样啊,呵呵,我一般都是在黑名单的基础下写规则,所以google的广告已经看不到了,以为你是过滤下面的统计呢。

你到主版发帖吧,应该没有问题了

TOP

返回列表