Tuesday, March 16, 2010

试用Yahoo Pipes生成RSS Feed

Yahoo Pipes是聚合Web资源的强大工具,可以通过模块化操作实现对各种网络内容的自由整合。其中一个有用的功能是抓取任意网页内容并制作RSS Feed。要实现这个功能只需几个简单的模块:

1. 用Fetch Page模块读取URL,根据给定的边界从中截取内容,并且可以用Delimiter将其分成多个item。分界所用的关键字可以通过分析网页源码得到。

2. 用Filter模块滤除不需要的item。

3. 用Rename模块将item.content复制或重命名为其它属性。RSS的item属性主要有:title、link、description。

4. 用Regex模块处理Item的各个属性。比如要从一段HTML源码中提取链接地址,可以用:
replace .*href="([^"]+)".* with $1
其中$1表示反向引用前面第一个括号里面匹配的内容。如果link里剩下一些特殊字符,如\x0d、\x0a、\x09等,最好将其删除。

5. 如果需要扩充description的内容(比如从link地址读取全文),可以用Loop模块嵌套
Fetch Page模块,并将取得的结果assign给item.description。

按上述步骤做了一个清华信息学院学术海报的Pipe,RSS订阅地址:http://feed.feedsky.com/TSULecture

参考:
RSS格式规范
正则表达式参考文档