2008年12月15日 美國yahoo推出了類似SQL讀取資料的API 美國Yahoo!推出了跟高自由度的Yahoo! Pipes有類似的服務。 命名為Yahoo! Query Language。簡稱是YQL 。 SQL風的語言來達到 REST,得到XML或是JSON的純文字資料。 沒有實在使用有點難懂,先用用看再說。 從RSS取得資料 要使用YQL可以從RSS當中取得最文章的標題。可以下這樣的YQL。
select title from rss where url='http://d.hatena.ne.jp/nitoyon/rss'
可以直接對rss table下select。 要執行YQL可以用YQL提供的console。(※需要登入) 在console的左上角輸入YQL,看下TEST按鈕… 喔、畫面下方出現了XML的結果。 這個XML的URL是 http://query.yahooapis.com/v1/public/yql?q=select%20title%20from%20rss%20%0A%20%20where%20url%3D’http%3A%2F%2Fd.hatena.ne.jp%2Fnitoyon%2Frss’&format=xml。在中間上方The REST query欄位顯示。(需要在v1的後方手動加上public) 用JSON取得資料 在中間的點選JSON選項,可以得到JSON。 JSON的右側輸入文字、就能得到這個命名的JSONP。沒有輸入、就是單存的JSON。 取得table的欄位 如果想要rss table的欄位類型,可以下desc rss指令。 url 是key,能夠得到title, description, link, author, pubDate欄位。 不只是title url也能取得。
select title,link from rss where url='http://d.hatena.ne.jp/nitoyon/rss'
URL 如下。 http://query.yahooapis.com/v1/public/yql?q=select%20title,link%20from%20rss%20%0A%20%20where%20url%3D’http%3A%2F%2Fd.hatena.ne.jp%2Fnitoyon%2Frss’&format=xml 按下之後,可以得到link的資料。URL 中的 title,link 改成 * 可以看到更多的欄位。 在html table XPath!! 在這裡感覺都感覺跟Yahoo! Pipes差不多,如果用html tableを能查詢任意的HTML。而且,可以用xpath當條件 舉例,想擷取Yahoo!NEWS的頭條。
select * from html where url="http://headlines.yahoo.co.jp/hl" and xpath="//li[@class='yjMt']/a"
從全部的 yjMt 類型下的 li tag中列出a tag。 結果,可以得到XML的a tag! 真強。超強的。 可惜的是現在還不是很完整常常會有問題。如果能正常服務會很便利。 從Flickr取得資料 還有Flickr也提供了很多的table flickr.location * flickr.photos.exif * flickr.photos.info * flickr.photos.interestingness * flickr.photos.recent * flickr.photos.search * flickr.places * 簡單試看看,flickr.photo.search。
select * from flickr.photos.search where user_id='8078344@N06' and max_taken_date='2008-05-01'
從我上傳的Flickr照片中,搜尋2008-05-01以前的照片。 喔~抓到了。 其他 可以使用的資料介紹之外的還有地理情報、天氣情報,但是只有美國的資料,沒有其他的。 YQL不只是基本的select可以用,還好像可以支援複雜的子查詢句。在Console的範例中也有寫著 aggregate and filter multiple rss feed 。
select * from rss where url in (select title from atom where url="http://spreadsheets.google.com/feeds/list/pg_T0Mv3iBwIJoc82J1G8aQ/od6/public/basic") and description like "Wall Street" LIMIT 10 | unique(field="title")
之外,像OAuth隱私的資料好像也能取得。 YQL的詳細在Yahoo! Query Language (YQL) Guide - YDN 可以查。 現在還在實驗的階段,在將來會是蠻實用的功能。
文章標籤
全站熱搜
創作者介紹
創作者 abort 的頭像
abort

推理文by阿誠

abort 發表在 痞客邦 留言(0) 人氣(877)