小程前几天曾发过一篇文章介绍过Yahoo Pipes的全文RSS输出技巧(利用Yahoo Pipes实现网站和博客RSS的全文输出),最近小程也是喜欢上了这个有趣的工具,折腾了一下,发现它的其他不少模块是很实用的,可以实现很多功能,于是决定写一文将其分享一下。
老样子,还是用例子的方式说明吧,还记得上次小程做了一个获取BBC网站的全文RSS的例子吧,这次我还是继续用它。
进入pipes.yahoo.com,然后打开上次的例子test_xc84.com 。
技巧一:获取制定关键词的RSS输出
我们本来是获取的BBC网站关于South African的文章,这次小程只想看某个指定关键词相关的文章,例如是关于“Jacob Zuma”这个总统的文章,那么我们就可以这样操作:
1. 我们把原来连接“Fetch Feed”和“Loop”之间的管道删除,方法是把鼠标放在链接管道之间的圆点上,等一下会出现一个剪刀的图标,再点击一下就删除了。如图所示:
2. 在Pipes的左侧找到“Operator”,然后再把其下的“Fliter”模块拖拽到右侧,如图所示:
我们把它放在“Fetch Feed”模块下面。
3. 顶部左侧的下拉菜单有两个选项,分别是“Permit”和“Block”,如图所示:
它们的意思分别为包含与不包含。例如咱们刚才说的,我们要获得“Jacob Zuma”这个人的文章,那么我们就需要在这里选择“Permit”,就是说选择包含这个关键词的文章。反之则选“Block”了,也就是说会获取除“Jacob Zuma”这个人之外的所有文章。
4. 顶部右侧的下拉菜单过会儿解释,要先解释下侧的“Rules”。在这里,我们可以在左侧下拉菜单中选择我们之前选择检索的关键词是在哪的,例如作者(item.author)、描述(item.description)、链接(item.link)、发布时间(item.pubDate)、标题(item.title)。如图所示:
我们这里就选择描述(item.description)吧。
5. 接着我看到中间也有下拉菜单可以选择,如图所示:
它的意思就是说是包含(Contains)关键词、不包含(Does not contain)关键词或者其他形式,因为简单,我就不一一解释了。
6. 在后面的“text”栏里我们填上我们需要包含的关键词“Jacob Zuma”,如图:
7. 顶部右侧的下拉菜单是“all”和“any”,如图所示:
把它们放后面介绍,是因为它们的意思是我们获取的文章是包含下面所有的“Rules”还是部分,例如我们选择获取某个关键词的文章,然后我们的“Rules”里面是弄了两个规则,一个是获取标题的,一个是获取描述里的,那么如果我们这里选择“all”则是必须标题和描述都有这个关键词才会用,而如果是“any”,则是只要其中标题或描述有这个关键词就获取这篇文章。
当然,如果你只制定一条规则,那么这里选择哪个都没关系了。
我们这里就制定好了一条描述中包含了关键词“Jacob Zuma”的文章规则了。不过别急着输出,我们再看看另一个技巧。
技巧二:去除掉所有重复的文章
弄完刚才的技巧一,我们先别急着输出,我们再跑到左侧“Operator”那一栏,拖出一个“Unique”模块在刚才的“Fliter”模块下面。
这个模块的作用是可以去除重复的文章,如图所示,可以是标题、描述、链接等等。这样我们就可以过滤掉可能会存在的重复文章。我们这里就选择标题吧。如图所示:
最后我们连接所有的管道,就形成如图所示的样子:
最后我们进行测试,在底部有一个debugger,我们选择“Pipe Output”,然后点击“Refresh”,就可以看到测试的输出结果了,我们就不用保存退出去看结果了,如图所示:
不过小程需要提醒的是,有时这个地方的测试会出问题。例如在这里测试会没有结果输出,可保存退出以后再去看结果时却又正常。
好了,今天就先介绍Yahoo Pipes的“Fliter”模块和“Unique”模块这两个模块的技巧吧,等以后有机会,小程再分享一下其他模块的技巧。发现中国玩这个不多,还是得去翻老外的视频讲解和文章了,呵呵。