之所以说Google是一家伟大的公司,是因为google的产品基本都是以用户怎么用起来顺手为第一目标(当然也有例外,比如在Gmail中捆绑Google Buzz,不过毕竟是极少数,而且后来知错就改了)。而中国的绝大多数互联网公司,是以把用户圈养在自己的服务器上为第一目标。为此宁可设很多的使用限制,让用户用得别扭之极。一般小公司这么做做也就算了,但连新浪这种规模的门户网站,也常常使用这种下三滥的手段。比如微博不提供rss输出功能——这在全世界所有微博程序当中创下了先例,并带动了随后跟风的中国门户网站微博程序都不提供rss输出——可能后来也有提供的了,但这一开始就让我倒了胃口,再也没有关注这些门户网站微博。
新浪
博客倒是提供rss输出。但是也有一个龌龊手段,就是一般新浪博客是提供全文rss输出的,但一旦某人的博客点击量变得大热,新浪就会关闭全文rss输出功能,改成只输出文章开头。就好比全文输出的时候只是赚吆喝,等你慢慢喜欢上看这个博客了,那么对不起,你就不能在你的rss阅读器上看了,必须到我的网站来看,给我贡献点击率。像当年明月、方舟子的新浪博客,莫不如此。这种小家子气,真让人又好气又好笑。后来方舟子我直接改订了他的新语丝博客;当年明月的书写完了,我就把他的博客退订了。
今天打开GR,突然发现我常看的萨苏和翟华两人的新浪博客,一夜之间又都变成rss只输出开头的模式。一时气不打一处来。好吧,反正网上有的是把非全文rss输出变成全文rss输出的免费工具,比如
http://mrss.dokoda.jp ,我就自动转换一下吧。
很轻松的完成了转换,但是……这文章当中怎么这么多乱码呢?我直接到新浪博客上打开一篇博文的源码看看——原来新浪早防着你用工具抓取全文输出,在他的博文源码当中加入了大量的乱文。这些乱文都被放在若干个<span class=“MASS+随机数”></span>的标签当中,在新浪博客自己的本地网页上不会显示出来,但是一旦你把<div>容器中的博客正文抓取过来,class标签无法被正确解读,这些乱文就会和正文混合在一起显示出来。
这也太无耻了~ 中国的网民当中,有用rss来阅读习惯的估计不到1/100;有用rss来阅读的习惯的网民中,懂得如何使用全文强制输出工具的网民估计不到1/1000。已经有那么多人去你的网站上点击阅读了,新浪居然连最后这么点漏网之鱼也不愿放过,强行要逼着所有人都去给他贡献点击率。这强烈的激起了我的反感情绪,非要把新浪这点儿小聪明给摆平不可。
调出超级武器yahoo pipes。使用fetch page模块,直接从新浪博客的网页源码当中,切割出含有博客全文的<div>容器。再使用regex模块,用正则表达式直接删除所有<span class=“MASS+随机数”>.*</span>标签中的内容……嗯,不管用?
再分析一遍源码。哇塞,原来新浪为了防止你用yahoo pipes删除他植入的乱码,故意把每段乱码都分了好几行。yhaoo pipes的正则表达式通配符“.*”,只能匹配单行文本,对多行文本就无法识别了。够狠。
不过删不掉也不要紧。既然这些乱码都被放在<span>标签当中,那么我直接使用替换功能,把<span class=“MASS+随机数”>标签,替换为<span style="dispaly:none">标签,让所有乱文都自动隐藏起来。最后按下output,世界清净了。
yahoo pipes真是一个伟大的工具。新浪真是一个猥琐的公司。这个行业的旗帜性公司都这德性,其他公司的品格可想而知,因此我很少愿意使用中文互联网公司提供的各种服务,有时宁可翻墙出去用国外公司的产品。
捎带说一句,绝大多数不提供rss全文输出的博客程序,我都能搞定,只有一家例外;就是凤凰网。凤凰网做得更绝:他把他的所有博文正文,全部放在后台。每个博客页面当中只有一个javascript,你点开页面之后再由javascript临时把博文加载进来。这样分析源码根本没用。既然他不嫌自己的服务器因此变得奇慢,那就让他脱了裤子放屁的折腾吧~ 我从不看凤凰网的博客。