因为很多时候,用Proxo过滤之后会留下一大片空白, 我就考虑整个对应标签都去掉。所以使用了$NEST()这个命令。
[Patterns]
Name = "SITE>>>>>>>>>>>>>>>>>>>>>>>>>>script"
Active = TRUE
URL = "$TYPE(htm)|$TYPE(js)"
Bounds = "$NEST(<script*,</script>)"
Limit = 30000
Match = "$LST(+script)"
Replace = "<script><!-- Kill AdScript --></script>"
Name = "SITE>>>>>>>>>>>>>>>>>>>>>>>>>>iframe"
Active = TRUE
URL = "$TYPE(htm)|$TYPE(js)"
Bounds = "$NEST(<iframe*,</iframe>)"
Limit = 30000
Match = "$LST(+iframe)"
Replace = "<!-- Kill AdIframe -->"
Name = "SITE>>>>>>>>>>>>>>>>>>>>>>>>>>DIV"
Active = TRUE
URL = "$TYPE(htm)"
Bounds = "$NEST(<div*,</div>)"
Limit = 32000
Match = "$LST(+div)"
Replace = "<!-- Kill AdDiv -->"
Name = "SITE>>>>>>>>>>>>>>>>>>>>>>>>>>TABLE"
Active = TRUE
URL = "$TYPE(htm)"
Bounds = "$NEST(<table*,</table>)"
Limit = 30000
Match = "$LST(+table)"
Replace = "<table><!-- Kill AdTable --></table>"
主要是基于DIV,TABLE,SCRIPT和IFRAME的整对标签的过滤。
可是结果我发现,效率并不如意。
<div class="adMenu" id="adMenu">
<ul>
<li class="active"><h6><a urn="#default_Info" rel="adListContent1">资讯</a></h6>
</li>
<li class="normal"><h6><a urn="adList_Edu" rel="adListContent1">教育</a></h6></li>
<li class="normal"><h6><a urn="adList_House" rel="adListContent1">房产</a></h6></li>
<li class="normal"><h6><a urn="adList_Bnz" rel="adListContent1">真道</a></h6></li>
<li class="normal"><h6><a urn="adList_Kfc" rel="adListContent1">美味</a></h6></li>
</ul>
</div>
例如上面的这个DIV,我是抽取中间的 *rel="adListContent1"* 来填到+div的blockfile里的。但貌似效果不好。
最后还是要通过
[Patterns]
Name = "SITE>>>>>>>>>>>>>>>>>>>>>>>>>>"
Active = TRUE
URL = "$TYPE(htm)"
Limit = 32000
Match = "<$LST(+site)"
Replace = "<!-- Kill AdSite -->"
这个规则来实现过滤。使用的规则是 div class="adMenu" id="adMenu">*</div>。
现在我想问下,能否通过匹配 <div class="adMenu" id="adMenu"> 中的 class="adMenu" 或者 id="adMenu" 来实现过滤?
想了好久也没想出来,另外,上面的模式有个缺点,就是不分站点来过滤。我想添加$URL()在blockfile里。但$URL()好像只能在Bounds 这个段里使用?多指教!
BTW,我新开了个QQ群,专门讨论Proxomitron,附带也聊聊Opera。
欢迎加入!QQ群的号码是19743473。此群严管灌水。
$NEST()和$URL()的问题
Moderator: cre
Forum rules
- 软件自带帮助是最好的入门教程,请仔细阅读;在您掌握最基本知识前,我们没法帮助您
- 提问前请先查阅软件帮助文件和论坛相关讨论
- 查阅软件帮助和论坛相关讨论即可解决的问题帖将直接删除,以免浪费他人时间
- 请学会如何提问,尽量将问题描述清楚,不明确的提问将被直接删除
Re: $NEST()和$URL()的问题
汗。又忘了提另外一个问题了。这个问题一直压着没解决。主要是想去掉页面的css里的字体定义。
主要是Opera里面国际字体的部分的设置,假设,我设置简体中文字体为微软雅黑。碰到页面编码定义为gb2312的,Opera会乖乖地把中文字体都设为微软雅黑。但如果是UTF-8的。就又自动用回默认的宋体了。但我尝试把该页面的字体定义,如"font-family:宋体"去掉,它就会用微软雅黑了。所以我想在Proxo里设置。
[Patterns]
Name = "CSS>>>>>>>>>>>>>>>>>>>>>>>>>>"
Active = FALSE
URL = "$TYPE(htm)|$TYPE(css)"
Bounds = "$NEST(<style*>,</style>)"
Limit = 32000
Match = "*(宋体|"宋体")*"
我用这个不成功。
好像匹配不了。不知道怎么弄了。
主要是Opera里面国际字体的部分的设置,假设,我设置简体中文字体为微软雅黑。碰到页面编码定义为gb2312的,Opera会乖乖地把中文字体都设为微软雅黑。但如果是UTF-8的。就又自动用回默认的宋体了。但我尝试把该页面的字体定义,如"font-family:宋体"去掉,它就会用微软雅黑了。所以我想在Proxo里设置。
[Patterns]
Name = "CSS>>>>>>>>>>>>>>>>>>>>>>>>>>"
Active = FALSE
URL = "$TYPE(htm)|$TYPE(css)"
Bounds = "$NEST(<style*>,</style>)"
Limit = 32000
Match = "*(宋体|"宋体")*"
我用这个不成功。
好像匹配不了。不知道怎么弄了。
Re: $NEST()和$URL()的问题
用$NEST()选择div后,在match里加入<div class="adMenu" id="adMenu">*</div>或者用*rel="adListContent1"*均可过滤成功啊,LZ把div的规则提到所有规则的最前面再试试。如果还不行,把blocklist里的具体内容再贴一下imsheng wrote:因为很多时候,用Proxo过滤之后会留下一大片空白, 我就考虑整个对应标签都去掉。所以使用了$NEST()这个命令。
$URL()直接写在blocklist里就行了,如上面的规则:
Code: Select all
$URL(http://site.com)<div class="adMenu" id="adMenu">*</div>
我看你用了$NEST(),如果字体定义在css文件里,这个似乎匹配不了吧?不太懂cssimsheng wrote:汗。又忘了提另外一个问题了。这个问题一直压着没解决。主要是想去掉页面的css里的字体定义。
主要是Opera里面国际字体的部分的设置,假设,我设置简体中文字体为微软雅黑。碰到页面编码定义为gb2312的,Opera会乖乖地把中文字体都设为微软雅黑。但如果是UTF-8的。就又自动用回默认的宋体了。但我尝试把该页面的字体定义,如"font-family:宋体"去掉,它就会用微软雅黑了。所以我想在Proxo里设置。
[Patterns]
Name = "CSS>>>>>>>>>>>>>>>>>>>>>>>>>>"
Active = FALSE
URL = "$TYPE(htm)|$TYPE(css)"
Bounds = "$NEST(<style*>,</style>)"
Limit = 32000
Match = "*(宋体|"宋体")*"
我用这个不成功。
好像匹配不了。不知道怎么弄了。
Re: $NEST()和$URL()的问题
我看你用了$NEST(),如果字体定义在css文件里,这个似乎匹配不了吧?不太懂css
所以我就添加了$TYPE(css)这个啊
应该是匹配字体的规则没选好。Name = "CSS>>>>>>>>>>>>>>>>>>>>>>>>>>"
Active = FALSE
URL = "$TYPE(htm)|$TYPE(css)"
$NEST()和那个$URL()我都弄好了。谢谢啊。我之前的思路太狭窄了。
$URL()的相关资料都看过了。要搞好这些还是得硬着头皮看附带的说明。
现在的问题是貌似byte limit太小。不过呢,如果嫌byte limit太小,那肯定是规则没选好。这是某君说的。
BTW,我新开了个QQ群,专门讨论Proxomitron,附带也聊聊Opera。
欢迎加入!QQ群的号码是19743473。此群严管灌水。
Re: $NEST()和$URL()的问题
我说你用了$NEST(),一般的css文件里没有<style>标签,我说的是这个意思imsheng wrote:所以我就添加了$TYPE(css)这个啊我看你用了$NEST(),如果字体定义在css文件里,这个似乎匹配不了吧?不太懂css
你试过把div规则提到第一位没有?
BTW,我觉得你的byte limit一点也不小
-
- Posts: 2
- Joined: Mar 31 2008, 11:47
Re: $NEST()和$URL()的问题
Active = FALSE 這個... 會不會有問題... ?_?
css可以再開一條不用Bounds的, 或者再多加上font-family:(沒記錯的話), 或許可行, 沒試過.
另外我還想到, 若是css或<style />裡有N多宋體出現, 是不是只會代換掉第一個, 還是全部? 如果只能代掉第一個, 怎解?
css可以再開一條不用Bounds的, 或者再多加上font-family:(沒記錯的話), 或許可行, 沒試過.
另外我還想到, 若是css或<style />裡有N多宋體出現, 是不是只會代換掉第一個, 還是全部? 如果只能代掉第一個, 怎解?
Re: $NEST()和$URL()的问题
会有问题,但我想他只是举例,所以不必介意。idle.newbie wrote:Active = FALSE 這個... 會不會有問題... ?_?
全部。idle.newbie wrote:另外我還想到, 若是css或<style />裡有N多宋體出現, 是不是只會代換掉第一個, 還是全部? 如果只能代掉第一個, 怎解?
Re: $NEST()和$URL()的问题
问题或许是在这里
如果css直接写在在htm里面 自然过滤没问题 但如果是单独的css文件 通常文件里没有style标签的
Code: Select all
$NEST(<style*>,</style>)