@ 2010.03.27 , 15:13

关于煎蛋 RSS 改为截断输出的说明

update : 我们已经增加了全文RSS ,需要订阅的同学。看这里:煎蛋全文RSS

[-]
升级服务器后,发现静态 feed 不能正常输出,估计是服务器设置所有改变的原因。于是按 paveo 大人的意见改为直接输出,不做静态处理——这时我就顺便把 RSS 改为截断输出。

当时 Heidi 姐非常反对,随后 group 内部也出现“BS 煎蛋摘要输出RSS”的讨论,基本都是要求全文输出。从使用角度,全文 RSS 更方便谁都知道,我当初都写过如何用 yahoo pipes 将摘要 feed 改为全文 feed 的教程;但是从站长角度,我还是坚持做截断处理。理由很简单:

1、我也喜欢订阅方式来关注 blog。比如我一直很喜欢看阮一峰的网络日志,但几乎没有点击标题去他站上看过;
2、任意搜索一篇我们的标题,可以发现结果里有大量复制品,那些镜像站大多是通过 RSS 采集就达到简单的不劳而获的目的。

(这里截断一下,RSS 用户过来看吧)
针对第一点,可以坦白说,流量是网站的生存之本,如果大家都只在阅读器里看煎蛋,那是不是不需要网站;如果没有网站的广告收入,又怎么保证内容的正常更新?

第二点,连内部的 group 成员都说了,只要我们保持更新,那些镜像站始终被我们甩在后面。但是我不这么想,劳动应该得到尊重,以 RSS 阅读之名行内容采集之实的网站太多,说白了就是利用别人的内容给自己制造流量;如果所有人都去采集,又有谁来产生内容?

所以我宁可武断一点,改全文输出为截断输出,并非部分读者所投诉的摘要方式。也就是说,在 RSS 里看到的内容与煎蛋首页展示的内容一致;煎蛋大部分文章是短文没有加截断,因此大部分文章是能看到全文的。我们截断的原则是保证每天文章在首页只有一个图,这样的好处是,在 RSS 里也不会由于多图而出现滚动页面因不断有图片载入出现页面抖动的情况(相应 GR 读者应该有这个体验)。还有一点,以前我们静态处理 feed 时顺便把 flash 屏蔽了,现在如果全文输出的话在 feed 里直接载入并执行 swf 文件会给不需要的用户造成困扰。

既然如此,只是截断长文的话,看在我们编辑写了那么多字的份上,麻烦点一下过来看行吗?煎蛋一向有回复更精彩的传统,但是现在水贴家具贴越来越多,这跟资深们只窝在阅读器里懒得动,只有新人们抢楼/路过/mark有关系吧?

就解释到这里,我们会继续截断输出 RSS。宣告要退订的同学,尽管退订好了。

———————— 留给资深老读者的分割线 ————————

作为合格的 Geek,总得知道几手折腾全文 RSS 的办法,与其让你们郁闷/干着急/瞎折腾,不如我自己剧透一下。首先不用尝试 pipe 了,因为我已经在服务器和 RSS 里屏蔽了 pipe 爬虫。下面是两个可行的途径:

1、用 Google Reader 以及 Chrome/Firefox,并已经装有 Greasemonkey 扩展的童鞋,请下载这个 JS:google reader full feed changer,然后编辑它,在 var SITE_INFO = [ 后面添加一段:
{
url: 'http://(feeds|feeds2).feedburner.com.jandan',
xpath: '//div[@class="post f"]',
charset: 'utf-8'
},
{
url: 'http://jandan.net',
xpath: '//div[@class="post f"]',
charset: 'utf-8'
},
{
url: 'http://feed.jandan.net',
xpath: '//div[@class="post f"]',
charset: 'utf-8'
},

这个办法我没有测试,理论上是这样改的,欢迎纠错。
# sein update:这个方法我实测是有效的。安装这个 js 后,按我的办法修改了,在 GR 里看煎蛋时,在有截断的文章稍稍停顿,然后它就变成全文了。

2、用 Firefox 并安装了 Newsfox 扩展的,添加煎蛋 feed,然后在"源的选项"里按下图勾选,在框框里填 Xpath 值为 //div[@class="post f"]
[-]
然后更新源,你就可以看到全文的 RSS feed 了。

这两个方法的好处是,因为是直接读取网站页面内容,连 RSS 里的广告都给过滤掉,高兴了吧 - -

# sein:其实就是一个办法,利用 xpath 直接读取页面内容。我很厚道的留了一个后门,让热爱折腾的童鞋折腾去。至于说你不用 GR/不用 Firefox 请问有没有别的途径我就不管了。另外如果这种方式被采集站用来镜像内容,或者被人用来二次制作全文 feed 加以推广的话,那就只好把这个方法都叉叉掉了。

支付宝打赏 [x]
您的大名: 打赏金额:
赞一个 (1)