1. 论坛系统升级为Xenforo,欢迎大家测试!
    排除公告

使用开源软件Lilina构建RSS聚合器

本帖由 小叶2006-06-09 发布。版面名称:源码讨论

  1. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    来自天极网

    随着Blog和Wiki在互联网上的蓬勃发展,RSS作为使用XML描述和同步网站内容的格式,正在逐渐的被人们所熟知。国内外的一些著名媒体网站如BBC、百度、新浪等也都推出了基于RSS技术的新闻聚合服务,网友们可以根据自己的需要选择自己喜欢的新闻资讯频道,使用RSS聚合器(Aggregator)进行阅读获取最新的文章消息。一般来说,RSS聚合器分为3种:第一种是桌面型的RSS聚合器,如国外的FreeDemon和国内的看天下阅读器和周博通阅读器等;第二种是网上运营商所提供的RSS新闻聚合页面服务,比较著名的有del.icio.us和天天网摘等;最后一种就是用户自己管理的在线RSS聚合器,这种聚合器也是基于Web方式管理和使用的,但要求使用的用户拥有Web服务器并安装PHP及MySQL等,下面我们要介绍的就是基于PHP建立的一个新闻聚合程序Lilina。

      介绍

      Lilina是采用PHP语言编写的开放源码的RSS新闻聚合器,虽然简单,但是功能还是比较强大,使用起来也比较上手。它无需使用MySQL等数据库的支持,而是基于文本方式进行存储,所有得到的信息均存储到cache目录下进行解析使用web页面进行显示。RSS的解析采用非常优秀的MagpieRSS库进行处理,而且Lilina本身内部就包含了MagpieRSS库,无须另外安装。它具有自动发现(Auto-Discovery)的特性,使用接口比较简单。

      安装

      Linina的官方主页是:http://lilina.sourceforget.net ,当前的最新版本是0.7。从网站上下载到源程序包lilina-0.7.tar.gz后,在本地解压,并提交到web服务器的文件夹下,这里我们假设所使用的web服务器的地址为:http://www.myweb.com ,提交的文件夹名为lilina。这里需要注意的是,一定要保证lilina目录下的.myfeeds.data和cache目录是具有可写属性的。

      配置

      提交完lilina目录后,我们需要对lilina进行配置,配置文件为lilina目录下的conf.php,其内容一般如下,我们一般只需要修改最上面的几行即可:

    <?
     $BASEURL = 'http://www.myweb.com/lilina' ; // lilina目录的web地址
     $USERNAME = 'user' ; // 管理员名
     $PASSWORD = 'pass' ; // 管理员密码
     $SITETITLE = "My lilina news aggregator" ; // lilina页面标题
     $OWNERNAME = "user" ; //用户名
     $OWNEREMAIL = "[email protected]" ; //管理邮件
     $DATAFILE = './.myfeeds.data' ; //数据文件
     $TIMEFILE = './.time.data' ; //时间文件
     $GOOGLE_KEY = '' ; // 使用google API关键字. 详细信息可以访问 http://www.google.com/apis/

     /*
     这里是对del.icio.us进行的操作,一般最好无须配置,作者给出了原因如下:
     IMPORTANT NOTE! Setting ENABLE_DELICIOUS to 1 will make lilina poll del.icio.us for tags.
     THIS MAY RESULT TO DEL.ICIO.US BANNING YOUR IP!!!
     Until del.icio.us officially allows such use, it is better to leave this to 0.
     */

      $ENABLE_DELICIOUS = 0 ;

     /*
      缓存失效时间,默认为1个小时,可以根据需要进行修改,单位为秒。
      可以通过强制调用 index.php?force_update=1 的办法进行强制失效处理
     */

     define('MAGPIE_CACHE_AGE',60 * 60*1);
    ?>

      使用

      经过以上的配置,就可以开始使用Lilina来做RSS新闻聚合了,首先我们打开
    http://www.myweb.com/lilina/edit.php ,这时我们可以看到如下的页面图1:
    http://dev.yesky.com/imagelist/05/08/z697mximlb9j.jpg

    图1



      填写好配置文件中设置的用户名和密码之后,进入到管理页面,就可以任意添加自己喜欢的RSS源了,如图2所示。第一行文本框用来添加RSS源的地址,第二行文本框可以用来导入OPML文件(格式化的XML文件,用来记录RSS源的一个XML集合文件),已经添加的RSS地址在页面上都会在添加后显示出来。

    http://dev.yesky.com/imagelist/05/08/380dzf34kcem.jpg
    图2

      经过添加操作之后,我们就可以打开Lilina的主页面来欣赏我们自己定制的新闻频道了,如图3所示。

    http://dev.yesky.com/imagelist/05/08/0hmmn9759i0t.jpg
    图3

      最上面一行的链接,24h、48h、week和all分别可以代表选择不同时间段的新闻内容,expand表示同时显示标题和新闻简介,collapse表示收起所有的新闻简介,只显示标题。图3的页面上显示了2005年6月24日笔者的新闻聚合内容,红色字体显示的是标题,灰色字体表示新闻的来源,页面的右边为RSS源的总体介绍和图标。点击页面上的红色字体可以打开新闻简介,如图4所示。如果你对这条新闻感兴趣,只要点击红色字体后面紧跟着的灰色新闻来源,即可链接到这条新闻的真正页面上,详细了解新闻信息。
    http://dev.yesky.com/imagelist/05/08/8bl458gp1ss6.jpg

    图4

      当然,也许你认为这样的页面不是很好看,如果你了解CSS样式表的话,你也可以参考lilina里的style.css的模版编辑自己的样式表,并修改lilina目录下的index.php文件中的如下行所示:

    <title><?=$SITETITLE?></title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    /* 修改href后的内容为自己定义的样式表格式 */
    <link rel="stylesheet" type="text/css" href="style.css" media="screen"/>
    <link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />


      这里可以展示Lilina提供的另外一个页面样式,如图5所示:

    http://dev.yesky.com/imagelist/05/08/3gz396495c5e.jpg
    图5

      结束语

      通过以上的介绍,一个基于Lilina的个人新闻聚合页面就建立起来了,我们完全可以对它进行扩充,把它作为个人主页的一个部分展示出来。目前网络上已经有使用Lilina构建的个人新闻聚合主页存在了,比较著名的如国内车东先生的主页:http://www.chedong.com 。相信随着Lilina程序的不断完善,一定会给大家带来更加完善和满意的聚合功能。
     
  2. shrek

    shrek New Member

    注册:
    2005-09-10
    帖子:
    2,990
    赞:
    17
    看看再说
     
  3. ffxk

    ffxk New Member

    注册:
    2005-09-06
    帖子:
    170
    赞:
    0
    用过,没有静态处理的订上20个RSS速度很慢。
     
  4. 小叶

    小叶 New Member

    注册:
    2005-09-04
    帖子:
    17,941
    赞:
    33
    是有人说过,效率比较低。