
本文无意成为Proxomitron的入门文章,也不打算将Proxomitron与流行的广告过滤软件进行对比。如标题所言,我将展示Proxomitron的一些基本和特殊的应用,如果你看完本文有亲身一试的冲动,那么本文的目的就达到了。
Proxomitron在2004年因作者不幸逝世(天妒英才)后即停止了更新,然而其前瞻性的设计使得至今仍无出其右者。事实上,广告过滤只是Proxomitron最基本的功能,其本身更象是个小型的编程语言,通过编制规则,我们可以实现比移除广告更有意义的应用。以下为大家展示冲浪过程中的一些常见问题及Proxomitron的解决之道。
广告过滤是Proxomitron的最基本功能,但不是本文的重点,以下稍做展示。以 http://news.sina.com.cn/c/2007-11-20/163614349509.shtml 为例,过滤前,广告和无关内容甚至占据了比新闻内容更多的版面:
中文网页的编码方式主要有2种,GB2312和UTF-8。在GB2312方式中,一个汉字占用2个字节,而UTF-8方式中,一个汉字占用3个字节。如下图,当我们将“一”这个汉字分别用GB2312和UTF-8方式储存的时候,以16进制方式来看,它们的内容是不一样的。

在Proxomitron的配置文件中,一个汉字也是占用2个字节,所以我们可以直接过滤GB2312编码网页中的中文;另一方面,我们不能用2个字节去匹配3个字节,所以不能直接过滤UTF-8编码网页中的中文。
尽管Proxomitron的帮助文件没有提到,但它实际上提供了以16进制方式按字节匹配的能力,符号为[%xx]。
以上图为例,如果要匹配UTF-8编码的“一”字,表达式为:
[%e4][%b8][%80]
显然,我们无法通过Proxomitron在UTF-8编码的网页中插入以3个字节为存储单位的汉字,但我们可以通过character entity的方式来达到我们的目的。关于character entity的知识,请自行google。
Proxomitron默认情况下只允许运行一个实例,然而某些情况下,同时运行多个Proxomitron实例并各自加载不同规则包或许会更为方便,比如:
注意: