首页 > 如何将摘要输出的源变成全文输出的源?

如何将摘要输出的源变成全文输出的源?

今天发现的一个服务FullTextRSSFeed|http://fulltextrssfeed.com/,可以将只输出内容摘要的源(如cnBeta)变成全文输出的源。
用cnBeta测试了一下,效果很不错。这种服务是如何实现的呢?


其实这类服务很简单,不过就是直接去抓取原页面,然后通过像Readibility(http://code.google.com/p/arc90labs-re...)之类的算法把页面的主要内容提取去来。


在这里我总结一下自己在 @Yeming 的回答下面进行的评论,我认为我的分析应该触摸到了问题的实质,改天我会进行实现的尝试,如果谁有兴趣的话也可以自行尝试一下。
-------
经过比较FullTextRSSFeed(以后用FTRF代替)转换cnBeta的原始RSS源输出的RSS内容以及对应新闻原文内容。我的猜测FTRF的处理流程如下:FTRF获取请求后如http://fulltextrssfeed.com/cnbeta.com...,首先会请求该RSS文件的内容,并建立XML对象,然后遍历每一个新闻呢条目,抓取新闻链接指向的内容,之后建立一个DOM对象,再通过比较RSS文件中输出的标题与原新闻页面中的标题、RSS文件中摘要内容(description)与原新闻页面内容进行,定位到包含新闻主体内容的容器(div),然后提取该容器中的所有的内容。因为转换前后的RSS文件只有每一个RSS条目的的“description”部分是不一样,且转换后的内容是原页面内容主体部分的全部内容(包括标签)。在对比http://www.softdigg.com/108/内容后,我有些确信自己的猜测,但是目前限于自己的精力,我还不知道如何编码实现这个系统。

我在评论中还提及自动更新的问题,最初我想可能是FTRF记录每一次用户提交的站点,然后定期扫描这些站点进行内容更新,以后再请求该链接的时候自动返回解析好的内容。后来,突然想到RSS阅读器的工作就是定期轮询用户订阅的RSS源,对于使用FTRF转换链接获得的源,阅读器也是同样进行定期轮询处理。FTRF在接受到请求后,应该不会进行区分,而是来一次请求进行一次运算,实现RSS源的非全文转换为全文内容,返回给阅读器。FTRF并不会判断初始RSS源是全文输出还是非全文输出,都一视同仁。

还有,目前经FTRF转换后的RSS源将包含Talkita评论功能,这应该是其营收的途径吧,或者仅仅是用来对Talkita进行推广。

Gonna Sailing ;-)

END

【热门文章】
【热门文章】