我需要创建一个管道,它将从多个站点中提取源,比如说20个。在输出中,我希望每个站点都有一个条目(最新的),没有重复或重复,并按日期降序排列。说,最后,我的结果中有20个项目可供使用,每个项目来自每个站点。我希望我的问题很清楚。请问最好的方法是什么?
答案 0 :(得分:0)
您可以通过创建2个管道来完成此操作:
这是第一个管道的示例:
http://pipes.yahoo.com/pipes/pipe.info?_id=106eaba3d5fe1f43805fd4094b11186d
以下是第二个例子:
http://pipes.yahoo.com/pipes/pipe.info?_id=290ef8130a4ff423a8d977493bbc669d
基于以上两点,你应该能够准确地创建你需要的东西。
对于类似的例子,另见其他答案:
Yahoo Pipes how to truncate items per feed with multiple feeds
答案 1 :(得分:0)
我知道这是一个非常古老的问题。也许你已经找到了一个解决方案,但我想我可以试一试。
如果我正确理解了这个问题,那么您可以从20个链接中提取RSS源,并希望从每个链接中获取最新的帖子。
您可以使用YQL模块执行此操作。像这样:
select * from yql.query.multi where queries="SELECT * from feed where url = 'http://www.discofilter.com/feeds/posts/default'|sort (field='published', descending = 'true') | truncate (count=1); SELECT * from feed where url = 'http://dotsanddashes.co.uk/feed/'|sort (field='pubDate', descending = 'true') | truncate (count=1)"
对此有一些documentation。
我在这里读到其他人提到你一次可以做多少查询是有限制的,但其他人回复并说这不是真的。我不了解自己,但你可以试一试。
代码使用内置的Yahoo数据表(yql.query.multi)然后提取多个提要(在“;”内)。然后你使用 -
select * from feed where url = ' '
从那里,您使用排序和过滤:
|sort (field = 'published', descending = 'true')|truncate (count=1)
它并不完全优雅,但我认为它会按照你的要求一步完成。