世界之窗论坛's Archiver

Surreal 发表于 2007-5-1 13:19

求助:A过滤 + B页面,必死……

A过滤为 #exd#*macd.cn*#<TR.*?altbg2.*?>(?:.|\n)*?<\/TR>###<!--Ad blocked by TheWorld2-->
B页面为 [url=http://bbs.macd.cn/thread-1130543-15-1.html]http://bbs.macd.cn/thread-1130543-15-1.html[/url]

只要使用这个过滤进入该页面,CPU占用立刻飚到百分之百;奇怪的是,该帖的其他页(如[url=http://bbs.macd.cn/thread-1130543-4-1.html]http://bbs.macd.cn/thread-1130543-4-1.html[/url])却不会出现这个问题。

恳请高手帮忙!

另外,若有可能,还请高手制作该页面的完整广告过滤,之前E版帮做了一个,但过滤得还不是很干净。如下:
#exd#*macd.cn*#<DIV.*?MACDStocksbannerStocks.*?>(?:.|\n)*?<\/DIV>###<!--Ad blocked by TheWorld2-->
#exd#*macd.cn*#<TR.*?altbg2.*?>(?:.|\n)*?<\/TR>###<!--Ad blocked by TheWorld2-->

mutalisker 发表于 2007-5-1 15:08

用正则编写过滤项的时候,是有可能出现这个情况的,罪魁祸首应该是.*?, 这个东西是要慎用的,很容易出现循环嵌套

在尽可能的情况下不要用.*这种方式,可以使用别的替代品,比如[^>]*等

Surreal 发表于 2007-5-1 18:27

多谢指点!
另外请教一个问题,下面这段代码想过滤掉,正则式应怎么写呢?
[code]
<TD bgColor=#ffffff height=72><A
                  href="http://www.mgforex.com/adlink.asp?ad=link-2&amp;ref=macd&amp;sec=demorequest&amp;lang=chs"
                  target=blank><FONT
                  color=red><B>免费模拟帐户,供您永久使用 MG金融集团,美国注册外汇经纪商</B></FONT></A>
                  <BR><BR><A href="http://www.macd.cn/" target=blank><FONT
                  color=blue><B>〖MACD即时消息搜索引擎全新推出〗查询个股即时发生的消息</B></FONT></A> <A
                  href="http://bbs.macd.cn/forumdisplay.php?fid=83"
                  target=blank><FONT color=blue><B>〖到这里提意见建议〗</B></FONT></A>
                  <BR><IMG src="欧奈尔选股法100只牛股纵览_files/download.gif">
                  <SCRIPT type=text/javascript>
var arrBaiduCproConfig=new Array();
arrBaiduCproConfig['uid'] =56689;
arrBaiduCproConfig['n'] ='coolsun1858cpr';
arrBaiduCproConfig['tm'] =20;
arrBaiduCproConfig['cm'] =76;
arrBaiduCproConfig['um'] =26;
arrBaiduCproConfig['w'] =506;
arrBaiduCproConfig['h'] =78;
arrBaiduCproConfig['wn'] =1;
arrBaiduCproConfig['hn'] =1;
arrBaiduCproConfig['ta'] ='right';
arrBaiduCproConfig['tl'] ='bottom';
arrBaiduCproConfig['bu'] =0;
arrBaiduCproConfig['bd'] ='#FFFFFF';
arrBaiduCproConfig['bg'] ='#FFFFFF';
arrBaiduCproConfig['tt'] ='#5C579E';
arrBaiduCproConfig['ct'] ='#000000';
arrBaiduCproConfig['url'] ='#666666';
arrBaiduCproConfig['bdl'] ='#FFFFFF';
arrBaiduCproConfig['rad'] =1;
  </SCRIPT>
                  <SCRIPT type=text/javascript>
<!--
document.write(baiduCproIFrame());
-->
  </SCRIPT>
                   </TD></TR>
              <TR>
                <TD>
                  <SCRIPT type=text/javascript>
cpro_client='coolsun1858cpr';
cpro_cbd='#E0E4F3';
cpro_cbg='#79829E';
cpro_ctitle='#FFFFFF';
cpro_clink='#444444';
cpro_w=468;
cpro_h=15;
cpro_template='tlink_default_468_15';
</SCRIPT>
                </TD>
[/code]

elkay 发表于 2007-5-1 21:16

一楼的改成下面的试试看
[code]#exd#*macd.cn*#<TR[^>]*?altbg2[^>]*?>[\s\S]*?<\/TR>###<!--Ad blocked by TheWorld2-->[/code]

elkay 发表于 2007-5-1 21:21

回复 #3 Surreal 的帖子

这个的话只要过滤掉里面的js脚本就可以了。
下面的是匹配页面中的js脚本
[code]<SCRIPT[\s\S]*?cpro[\s\S]*?<\/SCRIPT>[/code]

本地测试通过

Surreal 发表于 2007-5-1 22:25

谢谢e版!
一楼的那个有效,已经不会死了。
但三楼的这个没效果……能不能麻烦你帮忙把这个页面的源代码再分析一下。主要的广告有三块,其中两块已经可以过滤掉了,但每页一楼的那块还不行。
谢谢!
页面为[url]http://bbs.macd.cn/thread-1130543-14-1.html[/url]

Aycox 发表于 2007-5-1 22:57

那个论坛一楼的用这个试试
#exd#*.macd.cn*#<TABLE[^>]*?width="506[^>]*?>[\s\S]*?<\/TABLE>###<!--Ad blocked by TheWorld2-->

elkay 发表于 2007-5-1 23:01

7楼A版的就可以,呵呵

Surreal 发表于 2007-5-1 23:18

[quote]原帖由 [i]Aycox[/i] 于 2007-5-1 22:57 发表 [url=http://bbs.ioage.com/redirect.php?goto=findpost&pid=291870&ptid=32844][img]http://bbs.ioage.com/images/common/back.gif[/img][/url]
那个论坛一楼的用这个试试
#exd#*.macd.cn*#]*?width="506[^>]*?>[\s\S]*?### [/quote]

有效!非常感谢楼上几位的帮助!!

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.