让豆瓣小组帖子按时间排序

![豆瓣 logo][]最近因为种种原因,老是会在豆瓣看帖子,而且总是过一会儿就去一次,过一会儿就去一次。无奈豆瓣简洁的设计风格导致帖子只能按照回复排序,我勒个去,如果看帖需求不是很迫切倒是无所谓,不过要是不想错过每个帖子,诶~真是累死人咯——于是萌生了写写代码,让帖子按时间排序的想法。

我当时的思路是这样的:

    </p>

  1. 写一个脚本,分析当前连接的URL,豆瓣的URL是这样的: </p> http://www.douban.com/group/topic/xxxxxxxx/ 其中,*xxxxxxxx*就是帖子的ID了,观察了一下,似乎是按时间顺序增长的。于是可以写一个脚本,提取每个href的ID字段,然后作为排序依据对元素进行重新排序。

    但是这样做有另外一个问题:每个页面显示的帖子数有限,排序只能排列当前页面,效果不好,这个方案只好作罢。 </li>

  2. 于是我萌生的第二种想法,如果一个页面的帖子数制约了脚本的功能。那么,就需要有方法存储和处理数据,于是我想到了数据抓取,这个有两个方案:
  3. 1. 调用官方API:看了一下[豆瓣的API文档][],发现居然没有小组相关的API,用来直接获取小组内帖子列表。于是,这个方案也只好作罢。 2. 直接抓取:但是我以前没有写过抓取页面内容的程序,搜了一下PHP的抓取程序,感觉没有啥子封装,估计工作量很大。又找到一篇GAE的关于[豆瓣帖子抓取的文章][],无奈作者也只是说了一个思路——就当练练手吧,准备开始干了! </p>

  4. 就在这个时候,我突然想到——RSS,这个快要被我遗忘的东西——如果用Google Reader订阅的话,是不是可以实现按先后顺序排列啊。 </p> 怀着试一试的心态,我Ctrl-C,Ctrl-V,把豆瓣XX小组的地址复制到了Google Reader里头,我勒个去!全文输出!!!先后排列!!!历史文章Google都已经帮你存档啦!!!

    原来这就是我想要的,可恶的Google,剥夺了我写代码的动力... ... </li>

    </ol>

    最后补充一下,用Google Reader订阅豆瓣小组的缺点——大概就是更新不太及时吧,我也没有仔细观察,大概是几十分钟一次。这个可能跟豆瓣的RSS源更新频率有关,不过,这个实时性要求也没那么高,可以接受了。 再补充:在Google Reader里头用 j/k 翻帖子的感觉,好爽啊\~\~\~ [豆瓣 logo]: http://imley.net/wp-content/uploads/2011/07/lg_main_a7.png "豆瓣" [豆瓣的API文档]: http://www.douban.com/service/apidoc/ "豆瓣API" [豆瓣帖子抓取的文章]: http://www.zhouyang.me/article/fetch-douban-group-topic.html "抓豆瓣"

Comments