增加上一篇下一篇文章导航以及其他 >>
<< 爬山与人生思考
RSS爬虫更新算法小报告

Author Zhou Renjian Create@ 2007-01-27 23:30
whizz Note icon
开始思考RSS爬虫的更新算法应该是从我尝试RSS Feed Spider开始的。因为如果我想要用有限的资源获取更多的RSS信息,我必须要用更为有效的更新算法。

之前我一直知道有Google Reader可以阅读RSS,但是我不怎么用,因为我已经习惯在家里用Thunderbird带的RSS阅读功能。由于尝试RSS Feed Spider,所以我开始重新使用Google Reader。很高兴地发现,通过Google Reader可以阅读我从2006年大概5月份开始写blog。因为我记得2006年5月份,我一高兴,自己在Google Reader里订阅了我自己的RSS Feed,所以Google Reader就从那个时候开始一直记录着我所有的文章。当然我的文章可以追溯回到2004年初,可是Google Reader或者其他RSS阅读器都不提供反向追溯历史文章的功能,所以那些文章就没有了。这些天用下来,发现Google Reader对我blog的更新比较及时的!这令我感觉或多或少的惊讶。因为我有一两天发现Google Reader对譬如国内著名博客Keso的更新都会有点不及时,记得出现一次延时半天的情况。或许那一两天我自己的Blog更新也没有更新吧,只是我当时没有写文章而已。当然我还自己把自己加入到Bloglines里去了,也是一种测试。

今天我看一下我的服务器log日记,发现如下:
  1. Google Reader的爬虫feedfetcher,总是在每一个小时的21、22或23分这个点来更新一下我的RSS,非常的准时。
  2. Bloglines的爬虫很勤奋,每半个小时爬一次,在29和59分左右,也是非常的勤奋。
  3. 国内的抓虾过来有时会带HEAD协议,但是不定时,不知道是不是1个半小时或更长时间爬一次。
我的Blog没有什么读者,可是这些RSS Reader居然如此勤奋,令我深感不安啊。貌似固定的每个小时更新实在过于浪费资源了。因为我在我自己设计的RSS Feed Spider里,想的更新算法是,先对Blog的作者进行分析,如果作者一个星期才写那么一两篇的,那好根据他以往的写作规律,估计一下最有可能在那一两天(譬如周末)写 ,那这一两天前后访问他的RSS;如果作者每天都写的话,分析24个小时内他最有可能写文章的时候,在这些小时前后进行RSS更新。通过如此更新,对于资源有限的我来说就能够更好地更新更多的内容。当然如果为了有限的带宽,可能还考虑尽可能最大限度地利用RSS的缓存进行更新。譬如说如果一个RSS需要一个星期才能让RSS的10条记录全部更新,那就可以每隔一个星期才去更新一下RSS,这就可以更有效地利用带宽,快速地获得更多的文章更新。当然这个RSS的初始化策略。也就是说一个新的RSS Reader提供服务之前可以通过如此的最大效率更新策略来获得更多数据。当然真正提供服务的,及时性就是一个问题了,或许只有像Google Reader或Bloglines一样固定短时间循环更新了。

其实在我对RSS Reader的理解中,应该尽可能地提供历史记录回溯的功能,从而使得一些著名Blog的思想有个承前启后的过渡!当然如果从Blog本身就是追求及时性的角度来说,这回溯也就免了。

不说了,我的RSS Feed Spider还没做好呢,我的其他项目也在延时……
本记录所在类别:
本记录相关记录: