RSS循环抓取了…

星期天, 八月 19th, 2007

我在试用在线RSS阅读器的时候就订阅了自己blog的RSS feed。刚开始的时候是好的,但是最近发现这个新的blog的RSS不更新了,而原来的space的RSS是好的(我是两边同步更新的)。开始以为是在线阅读器抓取的延迟,就没注意。今天仔细研究了一下,原来是我犯了一个大错。 我的RSS feed是用Feedsky 烧录的,然后我为了图方便,就使用了FeedBurner FeedSmith这个插件。这个插件本来是为了FeedBurner做的,它的用途是把你的网站的各种订阅流量都通过FeedBurner的烧录地址来输出。我以为以Feedsky和FeedBurner服务的相似性,这个插件是可以通用的,当时还粗略看了一下它的源码,它是通过将所有订阅地址都用307跳转到你指定的FeedBurner烧录地址来实现的。当时也没多想,就用了。 今天一想,才发现这样一来我的RSS就循环抓取了site_RSS_feed->Feedsky_feed->site_RSS_feed。这样我的这个blog的RSS feed信息就停留在那个时候再也没更新过了... 现在把那个插件停用了就好了。在仔细看了看那个插件的源代码,在最后看见了这样一段 [sourcecode language='php']if (!preg_match("/feedburner|feedvalidator/i", $_SERVER['HTTP_USER_AGENT'])) { add_action('template_redirect', 'ol_feed_redirect'); add_action('init','ol_check_url'); }[/sourcecode] 原来它通过判断user agent已经过滤了FeedBurner的抓取,在FeedBurner来抓取的时候就不进行重新定向了。如果还想把这个插件用到Feedsky上只需要把上面代码中的“feedburner|feedvalidator”换成Feedsky抓取时候的user agent就可以了。 顺便说说Feedsky吧。今天仔细看了一下它的管理工具箱,发现还是有不少有用、有趣的功能的。有简单的聚合功能,可以聚合你某些网络标签和网络相册;还可以绑定你自己的域名作为feed地址;而且如果你喜欢个性,可以通过一个开放的API编写Feed互动文件,为你的feed添加自己想要的功能,这个很禶^_^ 不过给Feedsky提个意见:可以对用户提交的Feed互动文件进行审核,这样可以检查这些些Feed互动文件可能会含有的恶意代码。对于审核通过的Feed互动文件保存至Feedsky自己的服务器上来给用户使用,这样一方面是防止它被修改,另一方面也提高了这个Feed互动文件访问的稳定性。

试用RSS在线阅读

星期三, 八月 8th, 2007

既然是写blog的人,在这个RSS满天飞的时代,大家也都免不了要订阅别人的RSS feed。 我以前用过Feed Demon,但是在一次重装系统之后就没有再用了,现在想转向用在线的RSS阅读器了,因为这样在不同的电脑上上网看会比较方便。 今天比较了一下Google Reader,抓虾和鲜果,这三个是目前比较普遍的RSS在线阅读器了,当然还有Blogines,不过Blogines访问速度太慢,而且据说对中文支持不好,所以直接无视了。 Google Reader由于服务器在国外,所以速度相对于后两者确实慢一些,而且目前只有英文版,虽说那点英文我还是看得懂的,不过总觉得有点不爽,遂放弃了(gfans表拍我,确实是速度慢嘛...)。 试用了抓虾和鲜果,两者都是国内的服务商,所以速度都挺快的。费了不少时间把一干同学、朋友和收藏的blog添加了RSS feed,抓虾每个都成功了,不过在抓取某些数量较多的feed源时,会出现抓取不完的现象,要等几分钟后第二次抓取才能将所有的抓取回来。而鲜果在添加某几个feed的时候失败了,重试了一两次才成功添加,不过倒是没有出现抓虾的那种抓取不完的现象。 但是接下来的两天,抓虾表现得比鲜果要好,对几个更新了的blog的feed反应非常快,相比之下鲜果就慢多了,通常要落后抓虾半天左右,我也不知道是什么原因。 总的来说,抓虾是国内RSS在线阅读的老大,而鲜果则是后起之秀,两个各有优缺点,目前我试用的功能还很少,无法比较两者的优劣。不过我个人更倾向于鲜果,一个是它的界面看起来比较清爽,再一个是它的某些按钮比抓虾好找,而且可以将一个目录下的频道整合在一起看。现在先两个都用着,过段时间再说。 ps:刚才使用了一下Google Reader,把鲜果的OPML导出来导入了Google Reader,不过刚导入完就出现了一些小状况,我在鲜果的一些目录名是含有中文的,而Google Reader里面的tag不允许中文字符,所以所有含中文字符的目录名都被去除了中文,只保留了里面的英文作为tag =,= 。随便看了一下,界面我很喜欢,操作起来也还方便,最禶的是一个feed可以加上多个tag,完全是google的风格啊:)。还有一个与抓虾和鲜果不同的是,在标题浏览状态,每次只能点开一个查看,点击新的一个时会自动关闭打开的上一个。不过有一点不爽的是在使用“Mark all as read”时,整个右边都会刷新,google不是一直运用ajax很娴熟的嘛,为什么这里要都刷新呢=,= 不知道大家平常都用的什么RSS阅读器呢?