不记得Live Spaces出来多长时间了,反正我一直没用,究其缘由,就是太大 太慢太耗资源。据说有位可怜的仁兄,一次没事儿就点MSN上的小黄花,没一会儿 就死机了。后来我就管Live Spaces叫“活着的空间”。
背靠微软这棵大树,活着的空间一直活得都不错。可是国内的互联网就这个德 行,要不隔三岔五的搞出点儿动静,大家就容易忘记它还活着。最经济(成本最 低,又最吸引眼球)的办法自然就是改版了。我记得活着的空间改过好多次,可 改来改去,就是没见长进,还是一样的大腹便便。
讲到这里,我得把事儿叉得远点,说说去年我在ATC的经历。
去年暑假在ATC,我帮着mentor试验几个信息检索(IR)的算法。这需要很多 文本数据,于是我就和“活着的空间”干上了。开始mentor想直接从storage组那里 拿数据,这事儿讲讲停停,愣没进展,到了9月份,终于黄了。我只好开始自己准 备一只爬虫。
首要任务就是区别通过哪些地址可以访问活着的空间。这就折腾了我一个下午。 结果如下:比如您给自己的空间起了个名字叫“活着谁怕谁”,那么根据我的不完 全统计,当在地址栏中输入下边任意一个字符串,您都会被带到您的空间
- 活着谁怕谁.spaces.live.com
- 活着谁怕谁.spaces.msn.com
- www.活着谁怕谁.spaces.live.com
- www.活着谁怕谁.spaces.msn.com
- spaces.live.com/活着谁怕谁
- spaces.msn.com/活着谁怕谁
- www.spaces.live.com/活着谁怕谁
- www.spaces.msn.com/活着谁怕谁
- spaces.msn.com/members/活着谁怕谁
- www.spaces.msn.com/members/活着谁怕谁
- ……
知道了地址,接下来就是要找出我需要的内容。计算机不像人,没有有效的办 法自动从网页中分离出文章、评论……我前前后后试验了好多办法,包括 MetaWeblog API什么的,可是都不能满足我的需求。
就剩下一条路了。我打开活着的空间的网页源码,登时昏了过去。各种广告、 列表、文字统统混在一起,还夹杂着无数JavaScript(连读取个时间列表都要使 用JavaScript,可以想见访问速度该有多慢了),完全没有结构可言。发表时间 和文章还好判断,标签里含有一个特殊的id;评论就莫名其妙了,包含它的标签 没有特殊记号。好吧,它丑陋我也丑陋。我从一个带有特殊name的标签开始,一、 二、……,数到第n个div标签,再把里边的内容抠出来。
Redmond的网络结构比较复杂,我一度想搞出一个比较灵活的结构来适应它。 最终我在北京的Tech Leader给了我一个很重要的建议:在这个研究项目里,一个 辅助工具的内部技术结构是否先进完全不重要,关键是“it works”。这是我在那 里学到的最重要的东西之一。
我花了两天时间做各种准备,第三天晚上干了个通宵,终于把爬虫搭起来了。 乖乖,美国的网络就是不一样,四只虫子,下载速度稳定在600KB/s以上。 Mentor很满意(多好的苦力啊),我却有点担心,毕竟600KB/s是狠了点儿。“谁 让那帮家伙不给我们数据的!不要紧,再开4个,爬死他们!”我心软了,到最后 也还是没开。
就这么爬了几天。
我琢磨着Redmond那帮家伙也不是吃白饭的,他们肯定已经发现,某台机器没 日没夜的在活着的空间上瞎转悠,拼命抓数据。可查来查去却发现这个IP是自己 人。为了让这个空间活得更好些,我估计他们采取了相当温和的手段,限制了那 IP的带宽。因为等到我离开的时候,爬虫的平均速度已经掉到了150KB/s以下。
我离开没多久,就听说活着的空间改版了。我再次打开那令人生畏的网页源 码,发现其中一个标签的id起了变化。问了下mentor,爬虫果然歇菜——认不出发 布时间了。
而现在,活着的空间又要改版。我真为我的爬虫担心,要是Redmond的那些家 伙把什么东西换掉,爬虫又要歇菜了。不,说不定在这次改版前,它已经歇菜了。

