How to use YQL to merge 2 RSS feeds sorted by pubDate?

≯℡__Kan透↙ 提交于 2019-12-21 19:47:17

问题


Seeing that YQL is being promoted as a good way to do things, I was curious as to how to use YQL to fetch and merge 2 different feeds into one (sorted by pubDate).

It's pretty trivial to fetch 2 feeds but it turns out that the feeds are just concatenated together and not merged.

Here's the sample code.

select channel.title,channel.link,channel.item.title,channel.item.link
    from xml where url in(
      'http://code.flickr.com/blog/feed/rss/',
      'http://feeds.delicious.com/v2/rss/codepo8?count=15',
      'http://www.stevesouders.com/blog/feed/rss',
      'http://www.yqlblog.net/blog/feed/',
      'http://www.quirksmode.org/blog/index.xml'
    )

回答1:


Thanks for this info. It works when accessing the rss object, too:

select title,link,pubDate from rss where url in (
    'http://feeds.delicious.com/v2/rss/hasematzel?count=3',
    'http://oliverschwarz.tumblr.com/rss',
    'http://twitter.com/statuses/user_timeline/818226.rss',
    'http://hasematzel.de/blog/feed/',
    'http://piepmatzel.de/feed/'
) | sort(field="pubDate", descending="true")

This is a very simple way to create a newsroom or a lifestream. Don't forget to force-cache the YQL return :)




回答2:


This should do the trick

select channel.item.title,channel.item.link, channel.item.pubDate
    from xml where url in(
      'http://code.flickr.com/blog/feed/rss/',
      'http://feeds.delicious.com/v2/rss/codepo8?count=15',
      'http://www.stevesouders.com/blog/feed/rss',
      'http://www.yqlblog.net/blog/feed/',
      'http://www.quirksmode.org/blog/index.xml'
    )
  | unique(field="channel.item.link")
  | sort(field="channel.item.pubDate", descending="true")

use the post-query functions unique to filter out duplicates and sort to re-order your result. Here the link to the documentation of those functions http://developer.yahoo.com/yql/guide/sorting.html




回答3:


As to the RSS question - YQL always returns XML - if you want to turn it into an RSS feed you can also use Yahoo Pipes and the YQL module to get it as RSS.



来源:https://stackoverflow.com/questions/2718575/how-to-use-yql-to-merge-2-rss-feeds-sorted-by-pubdate

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!