- 打包下载全部饭否消息
该工具只适合下载任何公开消息的人的饭否消息。如果您的消息类型是“仅好友可见”,则程序无法读取您的饭否消息。你可以暂时改变为公开型再抓取自己的消息。
如果您不想临时公开一下您的消息类型,变通的方法,是在抓取消息时加以验证。(使用cookie:curl -Dcookie.txt -d “loginname=youremail@domain.com&loginpass=*****&auto_login=on&action=login” http://fanfou.com/login,以后只需-b cookie.txt即可:
curl -bcookie.txt -o#1.html http://fanfou.com/YOURFANFOUID/p.[1-100]
但是这样抓取的网页,其结构与抓取出来的公开页面略有不同,因为相当于是登录状态,所以有了操作(分享、删除)的选项。这也不要紧。既然知道是哪里有变化,只要把正则表达式修改一下即可。
- 关于执行效率
本程序经过数次改版,其运行效率曾经让我自豪。不过,随着饭否用户的增加,饭否服务器的表现越来越让人感到失望。原来我连续抓取1000页(确实有20000+消息的饭友!)程序依然运行没问题。现在,每当我连续抓取100页,本IP就被饭否给封锁了。在饭否服务器扩容之前,这确实是可以理解的做法。我也不该为了一己之利,对饭否服务器运行杀鸡取卵、涸泽而渔式地滥用。
- 本项目暂时搁置,一些程序取消下载。
编写程序是我的业余爱好,它跟我的专业、现在的工作都毫无关系,我并不以编写程序来谋生。我只把它当成与看球赛、打电玩、练瑜珈一样。确实,它让我的业余生活很丰富多采。
但是,我的工作、生活,最近发生了一些变化。明天要出个长差;回来面临找住处、搬家等琐事,搬家后能否继续像现在这样方便、便宜地上网,还是未知数。周末的时间,将去学开车,把以前的课时补完,争取一次通过,顺利加入马路杀手的行列。
总之,可支配的时间是越来越少了。这几个饭否程序,我也想完善之。但是照目前的情况看来,遥遥无期。我曾经在饭否上说,“假老夫数周,则我于饭否、twitter、叽歪、做啥之类的微博客彬彬矣”。不过,这个前提是有自由支配的时间可假,呵呵。
鉴于以上原因,本人的饭否项目就暂时搁置了。跟饭否抓取相关的程序,会取消下载。但是源码留着,为以后再续前缘留个根苗。
关于本人编写的饭否应用的三言两语
饭否,尚能饭否?
有饭友对饭否提出这样的建议,我谈谈我的看法:
作为一名忠诚度很高的饭否用户,……我现在想要的几个功能是(其中有一个以前提过):
- 按照发布日期排列的“顺序阅读”按钮;
- 针对发布内容的关键字搜索;
- “每日最热词”榜单——这个纯粹是为了好玩:统计每天海量文本中出现最多的词。
by StarKnight @ 02:40 2008-06-07
rex的看法:
- 按照发布日期排列的“顺序阅读”按钮;
这是可以实现的,而且也不难。
直接在饭否网上实现:
只要在数据库查询时加上order=ASC(默认是DESC)选项,就能按照时间的顺序从old到new排序。
正如前文所说,默认的顺序是降序,即DESC,这是为了让自己和饭友总是看到最新的动态,同时也是为了上搜索引擎抓取到最新的内容。同时,只要是总消息数大于20,则无论如何,饭否第一页总是20条消息,而不满20条的,总是把零头甩在最后一页。
通过软件方式实现:这个更简单,我原来写的饭否消息打包程序已经实现了该功能,目前正在写新版。
- 针对发布内容的关键字搜索;
这个功能无疑将极大地便利众多饭友。只是饭否官方迟迟没有提供该功能,而其同类产品,都通过自己或第三方实现了该功能。
但是该便利的前提是,让服务器更玩儿命。每位饭友的所有消息,在饭否服务器中有两种可能的存储方式:一是每人一张表,饭否ID作为表名关键字,便于搜索个人的消息(小而快);一是所有人共用一张大表,饭否ID(或其对应的内部UID)作为关键字段之一,便于搜索所有人的消息(全而慢)。无论是哪一种方式,搜索都是比较耗费资源的,尤其考虑到饭否在中国用户群最庞大,鹅毛也能压死骆驼。
因此,饭否官方这样做或许是为了避免让原本已几乎不堪重负的服务器再雪上加霜。近来饭否已经有步履蹒跚的迹象。昨天(2008年6月6日)上午出现了数小时的中断,晚21时又进行了1个半小时的服务器维护。按惯例,针对中国大陆网友的网络服务器,应该是在凌晨2:00左右维护,且应提前1至3天通知,这样才能把用户体验的影响降至最低。饭否挺住!饭否加油!
题外话:饭否的盈利模式在哪里?饭否以及海内已经聚集了大量人气,应该不会甘于只做免费服务、公益服务。跟Google比较一下,Google提供的是有广告的服务,但是它的服务强大、全面,以致于让人觉得它的广告也不那么难以接受了——不细看不深究不点击就是了,这是老夫对广告一贯的态度。Google可以便利地搜索Billion级的网页而响应迅速,实在值得做互联网的人学习。我们需要的是一个功能强大、贴心的饭否,而不是一个病如西子胜三分的饭否。
另外,使用软件的方式实现饭否消息的搜索,虽然可以定制(时间、顺序、关键词、正则式),灵活便捷,但是对一个人的消息来实现搜索不难,最多能辐射到好友,要想在茫茫饭海中打捞消息,就只能望饭兴叹了。
- “每日最热词”榜单——这个纯粹是为了好玩:统计每天海量文本中出现最多的词。
StarKnight 提出的三个问题中,在技术上来说,这是最难的一个。这个问题在英语或类似语言中不成问题,因为单词的分隔很容易实现,只要将句子按照空格或标点来分隔,再综合统计每个单词出现的频率,去掉常规词汇(a,an,the,is…),理论上能够从海量文本中统计出热频词汇。只是理论上而已。
具体到中文,单字好说,单词呢?老一辈的人可能记得生产队上的《小五更的故事》:
我的心跳起来,可千万别碰上生字。我念:“棉田——灌——溉法。”
队长的手指往下指,我就往下念:“但是——如果——灌溉——不合理——对——棉田——反而有——害——多年连——读(续)——不合理——的灌溉——会把——好地——搞成——坏地”
在处理中文断词断句时,程序可比“小五更”差远了,虽然小五更也够倒霉的。
但是,就没有解决办法了吗?非也非也。解决之道就是老夫一直提倡饭友使用、一直希望饭否官方提供支持的万能无敌TAG术:- 在消息中使用[]或【】作为饭否tag标识符,中括号之内以“,”“,”或空格作为多tag的分隔符。
- 然后对消息中的tag作出超链接,在点击时转到所有含该tag的消息列表中。不但可以在自己的消息中寻找,还可以在公共消息中寻找。
- 还可以做成tag cloud,以出现次数排序,自然就是每日热榜词汇列表。
- 使用tag就省去了无目的、低效率的数据库操作,转换成有针对性的高效操作。
当我想到的时候,做啥已经实现该功能了。见截图:

其中,“热门话题”中大部分tag是根据消息来源自动加上的,一小部分是出自用户的贡献。如果饭否也能加上相应功能,应该增色不少。昨晚的服务器维护时段之后,本以为会出现不少新功能,但是界面、功能一如其故。或许我们该庆幸,饭否还是如约回来了……
作为即将满一年的老饭友(2007年06月28日10点30通过发布了自己第一条饭否消息:读万卷无字书,行万里冤枉路。) ,对饭否的感情是复杂的。初识时的激情已退,之所以依然恋恋不舍,一方面是相知多时积攒下不少温存的回忆;一方面是习惯的力量,打开浏览器时不自觉ctrl+d,fanfou.com,回车;最重要的是,经饭否认识的若干老友都在那里,总是抱着关切、好奇、窥视的心态,察看老友的最新消息和动向。随意浏览时,看似你一言我一语,七嘴八舌不明所以,然而相知既久,自有其连贯性。引钱钟书的《围城》作结:
譬如咱们这次同船的许多人,没有一个认识的。不知道他们的来头,为什么不先不后也乘这条船,以为这次和他们聚在一起是出于偶然。假使咱们熟悉了他们的情形和目的,就知道他们乘这只船并非偶然,和咱们一样有非乘不可的理由。这好像开无线电。你把针在面上转一圈,听见东一个电台半句京戏,西一个电台半句报告,忽然又是半句外国歌啦,半句昆曲啦,鸡零狗碎,凑在一起,莫名其妙。可是每一个破碎的片段,在它本电台广播的节目里,有上文下文并非胡闹。你只要认定一个电台听下去,就了解它的意
义。我们彼此往来也如此,相知不深的陌生人——
希望饭否官方与时俱进,能推陈出新,“老者安之(维系老用户),少者怀之(吸引新用户)”。呵呵。
如果震
假如下一秒地震来临
我竟不知道如何逃生
眼看着壁如山倒
脑海里浮现今生
假如下一时地震来临
我会细掂量孰轻孰重
收拾些金银细软
也不忘水粮先行
假如下一年地震才来
似有些遥遥无期
该来得总躲不掉
该生活还得生活
一整年虽然短暂
八小时分秒必争
假如下世纪地震才来
我就当他没说过
百年后地裂山崩
我也已托体山阿
灾难总会到来
此时或下一刻
把握好眼前一秒
这辈子不算白活
台湾北部凌晨发生地震 台北大楼震感强烈
新华网北京6月2日电 台湾北部地区2日零时59分发生地震。台湾媒体报道说,台北市区以及台北县、基隆市的许多大楼可以感觉到强烈晃动,部分民宅的住家陈设因地震晃动而掉落。目前尚未传出灾情。
