Page 1 of 2

替换后的网页注释问题

Posted: Jan 11 2010, 17:20
by 不夜侯
有时网页代码的注释内容中又有被过滤的代码,如果规则中的替换内容是注释代码,就会与原注释代码重复。这样在网页中会多显示一个 -->
在 替换内容 不为空白(因为有时需要查错)的前提下,怎样避免以上情况出现?
谢谢!
举例:
规则:

Code: Select all

[Patterns]
Name = "Kill ad href"
Active = TRUE
URL = "$TYPE(htm)"
Bounds = "<a\s*</a>"
Limit = 480
Match = "\0 (href=$AV(*$LST(Adhref)*))\1*"
Replace = "<!---------- kill ad \1 ---------->
有时会遇到代码如下( 代码网页) :

Code: Select all

<!--
<a href="http://s.click.alimama.com/a/qve0X8/Z1P0=-10005495" target=_blank><img src="ad/ad_diyszyh.jpg" width="760" height="90" border="0" /></a>
-->
如果 s.click.alimama.com 在Adhref中,网页显示就会多出一个 -->

Re: 替换后的网页注释问题

Posted: Jan 11 2010, 17:53
by ddbb
1.
检测到目标<!--时,设置一个全局变量
检测到-->时,取消该全局变量
测试该全局变量是否存在。如果存在,规则匹配;如果不存在,规则不匹配


2.写个规则 先把所有的 <!-- --> 全都DELETE掉 反正不影响画面显示的.....只不过那个规则可能要很大字节.......


我只能想到这两种方法

Re: 替换后的网页注释问题

Posted: Jan 11 2010, 22:50
by nepter
> 换成 > 试试

Re: 替换后的网页注释问题

Posted: Jan 12 2010, 08:35
by 不夜侯
nepter wrote:> 换成 > 试试
<!------ ---------> 会让替换的注释内容直接显示出来的。

Re: 替换后的网页注释问题

Posted: Jan 12 2010, 11:00
by phoenix
ddbb wrote:1.
检测到目标<!--时,设置一个全局变量
检测到-->时,取消该全局变量
测试该全局变量是否存在。如果存在,规则匹配;如果不存在,规则不匹配
我觉得应该反过来,如果全局变量存在,说明在注释代码中,则应该不匹配;反之匹配。

第三种办法就是变更替换内容,比如写成:

Code: Select all

<prox killed ad \1 />
浏览器会忽略它不认识的标签。

Re: 替换后的网页注释问题

Posted: Jan 12 2010, 12:34
by 不夜侯
phoenix wrote: 第三种办法就是变更替换内容,比如写成:

Code: Select all

<prox killed ad \1 />
浏览器会忽略它不认识的标签。
似乎会占用网页显示位置。
例子
2010-01-12_123128.gif
2010-01-12_123128.gif (101.13 KiB) Viewed 10318 times
删除这个注释代码,网页显示就正常了。
2010-01-12_123204.gif
2010-01-12_123204.gif (26.41 KiB) Viewed 10318 times

Re: 替换后的网页注释问题

Posted: Jan 12 2010, 20:19
by i11
注释中的广告地址也会被访问和下载吗?

Re: 替换后的网页注释问题

Posted: Jan 13 2010, 05:21
by Bonnie
我也是在163遇过有这样的问题,好像也只有163有这种问题。
解决方法是用adcomment方式把163的广告代码都删除了。

被注释掉的部分不会被下载。

Re: 替换后的网页注释问题

Posted: Jan 13 2010, 09:14
by 不夜侯
我做个这样一个规则,放在第一位。遇到这样的注释代码时,在其他规则过滤前先过滤掉。
比较简单好理解。

Code: Select all

[Patterns]
Name = "kill <!-- <> -->"
Active = TRUE
URL = "$TYPE(htm)"
Limit = 512
Match = "<!-- <\0 -->"
Replace = "<!-- kill注释代码 -->"


Re: 替换后的网页注释问题

Posted: Jan 13 2010, 09:44
by ddbb
Limit = 512

如果考虑到所有可能的情况的话 这个Limit太小了......

这种方法只能对应一些已知的页面.....对未知的页面不能做到100%完全没问题