使用YQL(Google Feed API替代方案)顯示RSS源(2)

cenfeng發表於2019-07-23

步驟3: 要使用YQL顯示RSS源,我們只需構造正確的YQL查詢字串,該字串可以獲取目標RSS源,可選地對它們進行排序和過濾,然後將結果作為JSON物件返回進行成型進入人類可讀的東西。 以下顯示了用於以各種方式獲取RSS提要的最常見的YQL查詢字串:

  • select * from rss where url = "rssurl"  //獲取1個RSS提要的內容
  • select * from rss where url in ("rssurl", "rssurl2", etc)  //獲取多個RSS提要的內容
  • select * from rss(0, 5) where url = "rssurl"  //從RSS提要中獲取前5個條目
  • select * from rss where url = "rssurl" | sort(field="pubDate", descending="true")  //按特定欄位排序Feed(即:pubDate)

還有就是  YQL控制檯 ,你可以用它來輸入現場YQL查詢,看看被返回了什麼,也是  YQL指南  關於構建查詢更多資訊。

一旦我們收到了所需的RSS提要作為JSON物件,最後一步就是解析並顯示它。 以下簡單示例顯示了QZ.com的前5個RSS條目:

程式碼:

1
2
3
4
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
<div id= "qznews" ></div>
 
<script>
YUI().use( 'yql' , function (Y){
     var query = 'select * from rss(0,5) where url = " http://qz.com/feed/ "'
     var q = Y.YQL(query, function (r){
         //r now contains the result of the YQL Query as a JSON
         var feedmarkup = '<p>'
         var feed = r.query.results.item // get feed as array of entries
         for ( var i=0; i<feed.length; i++){
             feedmarkup += '<a href="' + feed[i].link + '">'
             feedmarkup += feed[i].title + '</a><br />'
             feedmarkup += feed[i].description + '</p>'
         }
         document.getElementById( 'qznews' ).innerHTML = feedmarkup
     })
})
</script>

演示:

如您所見,YQL查詢完成後,該引數 r  將結果包含為JSON物件。 要訪問實際的feed,我們引用 r.query.results.item ,它返回一個RSS條目陣列。 每個條目的各個元件,例如“標題”,“描述”等,儲存在每個陣列條目內的相應屬性中。 您的瀏覽器控制檯是您檢查  r 引數 內容的最佳朋友 ,包括YQL查詢中存在錯誤或訂閱源無法載入時。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69933200/viewspace-2651464/,如需轉載,請註明出處,否則將追究法律責任。

相關文章