本文无意成为 Proxomitron 的入门文章,也不打算将 Proxomitron 与流行的广告过滤软件进行对比。如标题所言,我将展示 Proxomitron 的一些基本和特殊的应用,如果你看完本文有亲身一试的冲动,那么本文的目的就达到了。
Proxomitron 在2004年因作者不幸逝世(天妒英才)后即停止了更新,然而其前瞻性的设计使得至今仍无出其右者。事实上,广告过滤只是 Proxomitron 最基本的功能,其本身更象是个小型的编程语言,通过编制规则,我们可以实现比移除广告更有意义的应用。以下为大家展示冲浪过程中的一些常见问题及 Proxomitron 的解决之道。
过滤效果展示
广告过滤是 Proxomitron 的最基本功能,但不是本文的重点,以下稍做展示。以 http://news.sina.com.cn/c/2007-11-20/163614349509.shtml 为例,过滤前,广告和无关内容甚至占据了比新闻内容更多的版面:
过滤后,保留了如上图红框所示的新闻正文及相关新闻部分,加大了新闻正文的阅读面积;移除了所有广告和不重要内容:
User CSS/User Script 展示
User CSS/User Script 是 opera 中的提法,FireFox 通过 Stylish 和 Greasemonkey 扩展也有类似功能。然而通过 Proxomitron ,我们可以给 IE 等任何主流浏览器增加此功能。以下以 Google 为例,展示添加 User Css 的效果。添加前:
添加后,界面配色发生变化,并增加了缩略图及按时间筛选搜索结果功能:
点击 Thumbnails 后:
Flash 延缓下载展示
Flash 在美化 web 世界的同时,也成为很多广告的宿主,并大大降低了浏览器打开页面的速度。以 www.jsmcc.com 为例,如果我们仅仅是想登陆进去查下账单,大量的 flash 广告和导航对我们并无用处,过滤前:
过滤后:所有 flash 内容被转换为 “Toggle Flash” 按钮,在我们点击 Toggle 前,flash 内容并没有被下载,因此大大加快了页面加载速度。
如果需要,我们也可以点击页面底部的 flash 按钮以显示所有 flash 。
代理调度展示
由于国情,熟练应用代理已经成为在国内冲浪的基本功了,但是你可能已经开始厌倦了频繁的切换代理,然而通过 Proxomitron ,我们可以将这一切自动化。
以下代码,展示了如何针对不同网站自动使用不同代理:
## use specific proxy $SET(0=i_proxy:3.) $SETPROXY(myproxy)
## ----------------------------------------------------------------------------
[^/]++.blogspot.com/ $SET(0=i_proxy:3.) $SETPROXY(web.proxy.one:80/cgi-bin/proxy.cgi/)
feeds.gawker.com/ $SET(0=i_proxy:3.) $SETPROXY(web.proxy.two:80/phpproxy/)
feeds.feedburner.com/ $SET(0=i_proxy:3.) $SETPROXY(111.111.111.111:8080)
my.opera.com/ $SET(0=i_proxy:3.) $SETPROXY(127.0.0.1:8567)
伪造 Referrer 破解防盗链展示
防盗链的一种方法是检查 referrer 。也许有人还记得几个月前 sina 和 sohu 博客的防盗链措施,使得我们在 google reader 等在线 rss 阅读器中无法显示博客图片的问题(目前正常了)。凭借 Proxomitron 超强的 http header 过滤功能,可以让我们轻松突破此限制。
以下代码可以让浏览器在访问以 pic.hosting.server/directory/pic 开头的链结时,自动修改 referrer 为 pic.hosting.server。
## fake referrer $SET(0=f_refer.) $SET(sReferF=*)
## ----------------------------------------------------------------------------
pic.hosting.server/directory/pic $SET(0=f_refer.) $SET(sReferF=pic.hosting.server)
Cookie 修改展示
以下配置可以使 Google 默认使用英语,并显示 100 个搜索结果。
# Google preferences
# -----------------------------------------------------------------------------
# ID -> shared GUID, Filters -> off, Results -> 100, Country-Region -> en/us
#
# To have Google pages displayed in another language, append ":LD=MY_LANG" just
# after ":NR=100:CR=2". "MY_LANG" would be "fr" for French, "de" for German,
# etc.. To show e.g. 25 results per page instead of 100, replace "NR=100" with
# "NR=25".
#
# If you change any fields here, you'd need to change the complementary entries
# in the "Google" section of IncludeExclude.ptxt as well.
#
PREF\=ID\=(^3003added)[^:;]+
(([^;:]+)\8$SET(b=$GET(b)\8):(FF|NR|CR)=[^:;]+)+
$SET(a=$GET(a)\0\1PREF=ID=3003added0032123:FF=4:NR=100:CR=2$GET(b))$SET(b=)
sourceforge.net 的 cookie 不在我浏览器的 cookie 允许列表里,偶尔去那里下载东西,总是会根据我的地理位置自动选择日本或台湾的服务器,但实际下载速度很慢。以下代码会默认选择北美的一个服务器。
## fake cookies $SET(0=f_cookie.) $SET(sCookieF=*)
## ----------------------------------------------------------------------------
# sourceforge.net: set preferred_mirror=internap
[^/]++.sourceforge.net/ $SET(0=f_cookie.) $SET(sCookieF=preferred_mirror=internap)
网页快照
google.cn 最近恢复了网页快照功能。在此之前,我们可以使用 Proxomitron 自行添加此功能。 Proxomitron 代码如下:
[Patterns]
Name = "Add Cached Links to Google.cn 2007.09.02 [phoenix]"
Active = TRUE
URL = "$TYPE(htm)(www.|)google.cn/"
Bounds = "<a\s*</a>"
Limit = 256
Match = "(*related:\1"*)\2"
Replace = "<a class=fl href="http://www.google.cn/search?q=cache:\1" target=_blank>快照</a> - \2"
Flickr 穿墙术
GFW 对 Flickr 的封锁是基于 http header 中的关键字检测,因此绕过的方法很简单,将 http header 中的 flickr 域名替换为数字 IP 即可,也即将 farm1.static.flickr.com 替换为 68.142.213.135,将 farm2.static.flickr.com 替换为 69.147.123.56。顺便说下为什么不使用 hosts 文件来实现域名到 ip 地址的转换,因为使用 hosts 文件并不会改变 http header。 Proxomitron 的实现代码为:
[HTTP headers]
In = FALSE
Out = TRUE
Key = "Host: Flickr Farm AntiBlock 07.07.09 [phoenix] (out)"
Match = "farm1.static.flickr.com$SET(0=68.142.213.135) | farm2.static.flickr.com$SET(0=69.147.123.56)"
Replace = "\0"
以 http://www.flickr.com/explore 为例,使用规则前,所有链接到 farm1 或 farm2 的图片都被屏蔽了:
使用规则后,美丽的照片得以重见天日:
以上只是 Proxomitron 应用的一小部分,谨以此文希望能吸引更多的人来关注、研究这个如此优秀却被人冷落的软件。无论你是想立刻体验 Proxomitron 的强大功能,还是想更深入了解 Proxomitron 的运作原理并自行编写规则,Proxomitron+sidki的规则包 都是你最佳的起点。