2008/11/15:
如何用 Yahoo Pipes 制作牛博网全文 RSS
近来我求助于 shawn 大师的次数明显增多,而且都是以“你创作,我共用”的伟大口号来发动他。shawn 同学说,啥时候你也创作一回啊?小看 me 的后果是狠严重的,今天我就解决了 shawn 认为 pipe 做不到的全文 feed 输出。
一、路过的同学可直接订阅已经搞好的牛博全文 RSS feed。
二、有兴趣自己烧录其它网站全文 feed 的,可以参考下面的具体方法。
1、在 Yahoo Pipes 里新建一个 pipe
拖入一个 Fetch Feed 模块,输入牛博最新文章的 rss 地址
拖入一个 Loop 模块,与 Fetch Feed 连接2、拖一个 Fetch Page 模块进入 Loop
设置 URL 为 item.link
读取内容从 <div class="EntryBody"> 到 </div>
指定所有结果为 item.temp3、拖入一个 Rename 模块,与 Loop 连接
将 item.temp.0.content 重命名为 content:encoded4、将 Rename 连接到 Pipe Out,保存
然后将 pipe 好的 rss 烧录到 feedsky(主要是方便收藏,不会往里面加小广告)
下面是 pipe 界面截图,一目了然:

debug 的结果里可以看到全文部分出现鸟:

# 以及这个做好的 pipe 已经公布,大家可以 clone 了自己研究。
# 注:除了大动干戈折腾 Pipes,可以参考 fisio 写的在 Google Reader 里用 GreaseMonkey 脚本方式抓取全文的文章《RSS feed 不输出全文?一样搞定你》,也可以看看雾之大陆所说在 NewsFox 扩展里用 XPath 方式直接读全文设置方法《Newsfox搞定RSS全文输出》。其实两者都是利用 XPath,但是 GR 里的脚本只能做到临时单篇载入,每次要小等一下;而 NewsFox 里虽然能一次性读取但每次更新源的时候则要等老半天。所以,最佳的解决方法还是回归本源,烧一个全文 Feed 出来,这也是我折腾 Yahoo Pipes 的原动力。

#
- 有关 XPath 的资源:
- How XPath Works
- XPath Tutorial
- W3C 的 XPath 教程
- TopXML 的 XPath 教程
- mozilla 的 XPath 使用指南
- 快速判定网页元素 xPath 地址的 Firefox 扩展:XPather
三、如果有牛博网或者其它不提供全文 RSS 的网站技术人员看到这篇,也给你们提供如何屏蔽 pipe 的方法:
1、在服务器端直接屏蔽“Yahoo Pipes”爬虫。
2、在自己网站的 RSS feed 里添加一个 noindex 的 meta 标签:
<meta xmlns="http://pipes.yahoo.com" name="pipes" content="noindex" />
3、发邮件到 pipes-optout@yahoo-inc.com,告诉他们你希望不被 Pipe 的 RSS 地址。
# sein 啰嗦一下:当然魔高一尺道高一丈,不提供全文 RSS 的站方可能基于节省带宽之类的理由,而且全文 RSS 的确给恶意克隆/镜像者提供便利。有些 RSS 烧录服务比如 feedburner 是禁止把 pipe 地址作为 rss 源的,国内的 feedsky 目前还没有这么做。不过即使 feedsky 也封杀 pipe 了,大家还可以选择 feedcat 或者更多第三方服务…… 很麻烦,其实提供一个全文 RSS feed 不好么?利人利己皆大欢喜,我们也不用需要让极其占用服务器资源的 pipe 爬虫来骚扰你了。
# sein 注:理论上用 Yahoo Pipes 可以搞定任何不输出 RSS 全文甚至不提供 RSS 网站的 全文 feed,愿意折腾的同学可以本文的方法,原则上我们不再提供其它网站的 Pipe 版 RSS。 ₪
这个要举五肢赞!
嗯,感谢组织内定的沙发
看来 yahoo pipe 有前途啊。折腾去。
顶之
test one
去看看
以前没听说过这个
如何对普通网站用这个抓取转换rss? 来篇教程撒。
刚刚制作了一个
貌似可以过滤重复条目,不错
折腾下…..
niu!~
@golax: 也是这个问题!
谁把牛博闻整个站都给订了……—。—
实验之……
惨无人道啊。。。。
在煎蛋看到这么geek的介绍,真是无趣啊~~~
再说了,全文输出很爽么?我来提些缺点
- 被剧集博客剧透到死
- 被GReader厌烦到死
- blogger们没有访问郁闷到死
- 自己整理feeds时面对url迷茫到死
没了
great! very great :)
PS: 欢迎回到这个体验很好,嘿嘿
@Xw.Y:
于是充分体现了Pipes爬虫的强大
最近正在关注WP的一些问题,尚在研究中。。。。。。
学习了,什么时候也整个boke耍耍
@Xw.Y:
有道理
尤其是第二點
orz
- -按照上面的步骤照着做,成功了,
但是我用fecth page抓取另一个普通网站imdb.com中的内容 为什么取不到呢?
Time taken: 0.474892sRefresh
* Could not found ‘ ‘ in the page
@士慷: 那个网站不支持feed输出吧
@阿企: 不输出 RSS 的网站也能 pipe 出全文 RSS
试了一下,无法实现baidu hi 博客的全文输出,请教下怎么解决
谢了!
我在牛博推荐了你的作品。你这篇文章,我全文转载了过去,因是不告而取,在此说一声抱歉。请去看看,若有不妥,请告知。
http://www.bullog.cn/blogs/zishe/archives/215619.aspx
@子蛇: 别客气,欢迎转载 :P
@nonu: 牛B啊,有空研究下
太好了,非常鼓励
呃….老罗哭了….他老人家好不容易才把google ads弄明白…你…你丫欺负银~
想如法泡制南方周末全文版,其他都一样,就改个 ,不过可耻的失败了。
成功了一个,哈哈
呃,早上发现不能全文了。显示-8 -7 之类的数字
hehe,牛博已禁止pipe了
@dedoli: 这不是读者的损失,而是牛博的损失
@dedoli 我也发现了。pity
牛博,哎
放弃pipes,辛辛苦苦弄好的,别人一禁止,全部玩完
那个……请教一下
每一步都写得很清晰,只是如何“连接”?每步都说与上一个连接,但偶找不到如何实行,Pipe界面也没有Fetch Feed\rename等板块间的蓝色连接线。
还望指教,谢谢。
@baboon: 看到圆坨坨吗,点击拖出一个管子跟其它圆坨坨链接,pipe 就是这个意思 :P
这么先进……偶一开始让两个圆对在一起对了很久……:)Pipe成功了,不过在烧制到Feedsky上遇到点麻烦:不知道Pipe好的rss去哪找。:(
回来忏悔了,pipe是个很好玩的东西。
没了。
全文楼主,有没有办法把一个博客上很久以前的文章也收录下来呢
哪位高人可以帮我作一下明报新闻的全文输出么?
http://hk.news.yahoo.com/rss/world/rss.xml?provider=mingpao
solong(at)gmail.com
谢谢。
明报的全文输出
http://feed.feedsky.com/mingbao
cnbeta无法制作出全文输出?显示:warning Could not found ‘ ‘ in the page
有一个缺点:如果文章正文里面还存在DIV的话,Yahoo Pipes会将里面最先出现的那个作为最终闭合标签,而不是和开头匹配的那个,这样就完全没法抓取全文了…
理论离实际还是挺遥远的,fetch page只能抓小于200k的页面,不通过别的服务器中转的话,好多页面根本抓不了。
天天天那,为了看这个网页第一次遇上超载小鸡。
为什么做了一个pipes,在debugger里面能够预览到content.encoded部分的正文,但是保存之后run pipes就又变成和原始rss一样的摘要输出了?
谢谢!
牛博网的全文RSS输出地址,使用Google Reader订阅,为什么还是摘要输出,根本就没看到全文,难道果然被牛博网的技术人员看到这篇文章,将其屏蔽了!?
I agree with your ???????”¨ Yahoo Pipes ???????‰??????‘?…¨?–? RSS, good post.
牛博网 哦 哦www.kx371.com/ 牛博网 哦 哦www.kx371.com/