新闻聚合服务设计思索

时间:2022-06-01 05:45:00

新闻聚合服务设计思索

1引言

Web是网络时代的新闻传媒,人们开始习惯每天在Web上去浏览新闻等信息,人们常常访问如搜狐、新浪等主要门户网站,页面停留也只限于首页及感兴趣的新闻条目。近年来“博客”、微博和SNS等逐渐火爆,RSS也开始被越来越多的注意,很多门户网站支持RSS,例如Yahoo!公布了其RSS提要的地址,了国内、国际和政治新闻版面的不同提要,订阅后可以得到了一张最新新闻标题的列表,并提供了新闻报道的导语段落。另外,通过GoogleNews上的搜索结果转换而来的RSS源,来自全球上千个英文媒体上的某个关键词内的讯息,也都随手可得。聚合工具收集和组织这些定制的新闻来源,按照你希望的格式、地点、时间和方式,直接传送到你的计算机上,并且可以根据需要来修改它的格式。对于用户来说,RSS是一种在他们需要的地方、时间并以他们希望的方式获得信息的工具。有了RSS后,内容消费者不用再花费大量的时间冲浪和从新闻网站下载。但同时,更多的站点不支持RSS等技术,此外,RSS仅对标题搜索,无法实现对内容的全文搜索。如何实现对更广泛应用的站点实现新闻聚合,这就可以利用页面跟踪技术。页面跟踪系统是一种专门关注于页面动态更新的信息服务系统。页面跟踪系统实现“定向”、“主动”跟踪。这种新型服务的最大特点是强调变化的反映要及时,时间敏感度很高。页面跟踪需要从用户选定的多个页面中提取信息,从本质而言是一种“聚合”工具。因此,很容易将其与RSS技术结合起来,实现真正有用的新闻聚合服务。

2关键技术

2.1页面跟踪系统

Web页面跟踪系统一般由需求描述(profile)、信息搜集、更新检测、变更通告与展示这几部分组成。首先由用户给出一定的跟踪目标,然后系统自动针对这些跟踪目标进行反复的状态查询和内容检查,如果系统判定目标发生了变化,则向用户发出相应更新信息通告。页面跟踪系统的输入是用户需要跟踪的目标网页集合,这里引入频道(Channel)的概念来表述,和RSS中频道的概念是一致的。Channel频道是一组用户需要跟踪的网页的总称,频道代表了用户的个性化需求。一个用户可以设置多个跟踪频道,对于每个频道,用户可以指定一些跟踪的参数,如服务器,超时设置、下载文件类型等。我们利用一个页面跟踪系统-“ChangeSpider”,它主要有三个模块:信息搜集器Crawler:负责搜集指定网页集,以及检查页面文件状态。专门针对页面跟踪进行优化,内部实现一个线程池。更新检测模块ChangeDetector:负责检测页面不同版本间的变更。通过简化更新检测的功能来提高效率;任务调度与控制模块TaskManager:负责发动和控制其他模块,并实现更新调度策略。

2.2RDF/RSS格式介绍

RSS是一种XML格式,用于为内容整合客户端提供选择性的、汇总过的Web内容。把新闻标题、摘要(Feed)、内容按照用户的要求,“送”到用户的桌面就是RSS的目的。RSS是一种“轻量级、多用途、可扩展的元数据描述及联合推广格式”,它遵循W3C的RDF规范。RSS有RSS0.9x/2.0和RSS1.0两个主要版本系列,此外,Google也推出了自己类似的格式Atom。RSS和Atom机理是一致的,目的都在于为Weblog、新闻或是其他Web内容创建聚合的XML文本,以便其他站点引用。下面主要基于RSS1.0。RSS规范描述了XML风格的元素的一个简单子集,这些元素可用于为网站内容创建汇总。汇总可能包括一个网站徽标、一个网站链接、一个输入框以及多个“新项目”。这个(或者多个汇总)称为一个RSSfeed。RSSfeed由内容提供者的网站与推广,再由内容整合者的网站(也称为“门户”)使用,或者由独立的桌面工具使用。RSSfeed可人工生成,方法是创建并向网站一个RSS文件(例如latest_news.rss)。RSSfeed作为一个有效的XML文档,可从一个可选的XML声明“<?xmlversion="1.0"?>”开始。遵循RDF规范,构成一个RSSfeed的剩余的RSS元素必须用<rdf:RDF>和</rdf:RDF>标记封装在根元素内,将rdf命名空间前缀与RDF语法架构关联到一起,并使其成为文档的默认命名空间。除根元素外,RSSfeed通常由4个主要元素构成:<channel>,<image>,<item>和<textinput>。<channel>元素是必需的,<item>元素至少要出现一次。<textinput>和<image>元素是可选的。

1)<channel><channel>元素包含Channel(RSSfeed的来源)的一个简单描述。属性rdf:about="resource_URL",(resource_URL可能是一个不重复的URL,指向feed提供者的主页;也可能是RSSfeed自己的URL)。<channel>元素包含以下子元素:<title>是频道的名称/标题。<link>是与频道内容对应的包含了完整内容的那个网页的URL。<description>是与<channel>的内容有关的简单描述。<image>只当存在一个外层<image>元素时用到。它有属性rdf:resource="image_url",其中的image_url是与频道对应的一幅图像(通常是频道徽标)的URL。<textinput>只当存在一个外层<textinput>元素时用到。它有属性rdf:resource="textinput_url",其中的textinput_url是用户输入表单的目标URL。<items>是包含在feed中的内容项的列表。

2)<image><image>元素指定了与一个频道对应的图像,最好选择88x31像素大小。它有一个rdf:about属性,该属性的值与<channel>中的<image>的rdf:resource属性值相同。<image>元素支持以下子元素:<title>是图像的备用文本(HTML标记<img>的alt属性)。<link>是图像源的URL,通常是频道提供者的主页。<url>是频道提供者网站上的一幅图像的URL。

3)<item><item>元素指定一个项目,比如新闻文章的大标题,它的超链接指向频道提供者网站上的完整内容,并后跟一段简短的描述。该元素构成了RSSfeed的动态部分。每个feed都允许使用1~15个item。<item>有一个rdf:about属性,其值与<channel>中的<items>的相应列表项的rdf:resource属性值相同。<item>元素支持以下子元素,<title>是一个项的名称/标题。<link>是与一个项对应的完整内容URL。其值与rdf:about属性的值完全相同。<description>是可选的对一个项的简短描述,它出现在超链接的itemtitle之后。每个item最多可以使用一个description。

4)<textinput><textinput>元素用于呈现一个HTML表单字段,以便提供用户的输入。它有一个rdf:about属性,其值与<channel>中的<textinput>的rdf:resource属性值相同。<textinput>元素支持以下子元素:<title>是输入字段的标题,例如Submit或Search。<description>是简短的输入字段用途说明,例如:Submityourfeedback。<name>是输入字段的名称。<link>是提交输入字段的目标URL。其值与rdf:about的值相同。利用这些元素,你可以创建一个RSSfeed,并将其保存到一个.rss文件中。一些站点有标记为“XML”或“RSS”橙色图标,表示支持RSS聚合。

3应用系统设计

本文在页面跟踪技术的基础上进行扩展,对不支持RSS的网站自动生成RSS数据,并设计新的一套用户服务支持新闻聚合。在标准的订阅模型中,有出版者、发行者和订阅者三种角色。对于出版者来说,RSS是一种提供结构化信息的方法。以新闻的应用为例,新闻的站点每小时一个包含最新新闻列表以及相应链接的文档,而这一文档可以被其它站点收集并显示在其索引页面上,并且这个站点自动同步更新,以获取最新的新闻。其实就是把索引页面与新闻源站点的动态内容相连接而已,RSS则为此提供了一种组织单个信息和集合信息的有效结构。系统架构如图1,在原页面跟踪系统的Web客户端扩充支持RSS,同时可以访问页面跟踪的用户服务接口。每个频道对应个RssFeed文件。每日(可配置)生成一个Feed,当日更新增量方式添加,blog如何(何时)更新自己的feed,ChangeSpider也同样方式处理。本系统可以对已有RSS再聚合,在Intranet环境下,页面跟踪服务还可下载RssFeed中的URL,甚至全文索引,从而提高缓存效果。应用实例-新楼盘信息查询系统基于上述架构,本文设计了一个“新楼盘信息查询”系统,应用ChangeSpider的检索功能,设置了一个跟踪13个房地产信息URL的频道,由ChangeSpider自动的搜集新闻并作全文索引,系统提供一个检索界面,客户可以输入关键词对这些楼盘新闻进行检索。例如,要从采集的新闻中检索有关武汉新开盘楼盘的新闻,设置检索关键词为“武汉楼盘开盘”。

4小结

目前RSS已经得到广泛应用,“MyYahoo!”和iGoogle[等个性化服务中添加的RSS聚合器可以整合来自雅虎或者Google的内容,如新闻、天气、体育和股票信息等等,还可以自动连接反馈第三方的网站内容,并同步更新。RSS作为一种简单而强大的web信息集成技术,将衍生非常丰富的应用,如内容整合、讨论主题、职位列表、Top10列表、多列表服务、比赛分数以及文档编录等等。