Page 1 of 1
请教一个广告过滤
Posted: Oct 31 2010, 20:24
by 不夜侯
新华网首页有个广告
- 2010-10-31_202111.png (26.78 KiB) Viewed 6126 times
根据源码规则如下。
Code: Select all
[Patterns]
Name = "killad_www.news.cn"
Active = TRUE
URL = "$TYPE(htm)www.news.cn/(^?)"
Bounds = "<table width=$AV(980) *>$INEST(<table *>,</table>)</table>"
Limit = 600
Match = "*<iframe[^>]++id=$AV(headlogin2)*"
Replace = "$STOP()"
广告是成功除去,但网页却不能完全打开。禁止这个规则后网页又正常打开。
请教原因,谢谢!
- 2010-10-31_202440.png (123.37 KiB) Viewed 6126 times
Re: 请教一个广告过滤
Posted: Oct 31 2010, 23:32
by cre
广告地址是在:
来源地址是:
Code: Select all
http://www.news.cn/js20100613/function_01.js
该js内容:
Code: Select all
//iframe ad_iframe.htm开始 -------------------------------------------------------------------
document.getElementById("headlogin2").src="http://www.news.cn/ad_iframe.htm";
//iframe ad_iframe.htm结束 -------------------------------------------------------------------
在网页的源代码是:
Code: Select all
<iframe id="headlogin2" marginwidth="0" marginheight="0" src="#" frameborder="0" width="970" scrolling="No" height="0"></iframe>
所以单独用一条
match:
Code: Select all
<iframe\s[^>]++id=$AV(headlogin2)$INEST(<iframe,</iframe>)</iframe>
即可....
你限定table干嘛?而且这留个边是的,直接阻止www.news.cn/js20100613/function_01.js也是留个边.那个边的问题是在
Code: Select all
<td align="center" class="huibian00"
如果用
Code: Select all
<td\s[^>]++(id|class)=$AV(huibian00)$INEST(<td,</td>)</td>
就不需要用上面的了....
Re: 请教一个广告过滤
Posted: Nov 01 2010, 09:14
by 不夜侯
cre wrote:
所以单独用一条
match:
Code: Select all
<iframe\s[^>]++id=$AV(headlogin2)$INEST(<iframe,</iframe>)</iframe>
这个和table没有关系。
我试过,按iframe过滤代码,网页下半部也一样不能完全显示出来。
Re: 请教一个广告过滤
Posted: Nov 01 2010, 12:31
by cre
我用空白规则测试,确实如你所说....
大量的document.getElementById
建议用添加display....
我用的规则很乱,特殊的相互作用下我没发现这问题....
Code: Select all
[Patterns]
Name = "Fix_none"
Active = TRUE
URL = "$TYPE(htm)"
Bounds = "(<td\s[^>]++)\1( |style[^>]+)>"
Limit = 256
Match = "*class=$AV( ($URL(http://www.news.cn/(^?))huibian00) )*"
Replace = "\1 style="display:none">"
绝对不会再有问题了.
Re: 请教一个广告过滤
Posted: Nov 05 2010, 16:27
by 不夜侯
cre wrote:我用空白规则测试,确实如你所说....
大量的document.getElementById
建议用添加display....
用display:none确实可行,谢谢!
真是一个奇怪的问题。