`
fuhao_987
  • 浏览: 63662 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

利用YQL制作自己的小工具

阅读更多
YQL服务可以实现对网上不同数据源的query,filter,combine(查询,过滤,合并)。

YQL说明类似SQL。下面的例子就是用YQL说明实现从Flickr上得到一系列text为cat的图片。

SELECT * FROM flickr.photos.search WHERE text = "cat"

为了使用YQL服务,需要使用HTTP GET,把YQL说明作为URL的参数,例如:

http://query.yahooapis.com/v1/public/yql?q=SELECT * FROM flickr.photos.search WHERE text = "cat"

当实施查询的时候,YQL服务就会访问网络上的数据源,传输数据,返回XML或者JSON形式的数据结果。YQL可以使用许多类型的数据源,包括Yahoo!Web services 或者其他的网络服务,和网络数据类型例如:HTML, XML, RSS,和Atom.

-----------------------------------下面就来介绍如果利用YQL制作自己的小工具------------------------------------

介绍

这个手册告诉你怎么样制作一个简单的网络应用,通过YQL来获取RSS。YQL的调用在HTML的

script标签中实现,返回的JSON数据用JavaScript处理。

1、创建一个HTML的网页new.html

2、复制下面的HTML代码到new.html,第二个script标签的src属性暂时为空,以后我们会用YQL说明来填入。

<html>  
  <head><title>YQL and RSS: Yahoo! Top News Stories</title>  
  <style type='text/css'>  
    #results{ width: 40%; margin-left: 30%; border: 1px solid gray; padding: 5px; height: 200px; overflow: auto; }   
  </style>  
  <script type='text/javascript'>  
    // Parses returned response and extracts  
    // the title, links, and text of each news story.  
    function top_stories(o){  
      var items = o.query.results.item;  
      var output = '';  
      var no_items=items.length;  
      for(var i=0;i<no_items;i++){  
        var title = items[i].title;  
        var link = items[i].link;  
        var desc = items[i].description;  
        output += "<h3><a href='" + link + "'>"+title+"</a></h3>" + desc + "<hr/>";  
      }  
      // Place news stories in div tag  
      document.getElementById('results').innerHTML = output;    
    }  
    </script>  
  </head>  
  <body>  
    <!-- Div tag for stories results -->  
    <div id='results'></div>  
    <!-- The YQL statment will be assigned to src. -->  
    <script src=''></script>  
  </body>  
</html>  


3.打开网页http://developer.yahoo.com/yql/console/   在show tables那里输入:
select title from rss where url="http://rss.news.yahoo.com/rss/topstories"
选择JSON按钮
------------------------------------------------------耽误了几天,补起来----------------------------------------------------------------------
点击TEST按钮,你就能在下面的视图中看到返回的JSON代码。

4.在YQL的说明中,用“*”代替“title”。点击TEST,在视图中将会返回所有的信息,而不只有 title的信息。
5.在返回ideJSON中,找到结果对象。需要主要的是,返回的对象保存在数组中,数组的每一项代表一个对象,包括了title,link,description和每一条news article对象。
6.点击Copy URL按钮。从网页yql_news_app.html中复制URL到第二个script的属性里面。就像下面的代码一样:
<body>  
  <div id='results'></div>  
  <script src='http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Frss.news.yahoo.com%2Frss%2Ftopstories%22&format=json&callback=cbfunc'>  
  </script>   
</body> 

注意了,YQL的说明已经是URL形式的编码,说明了JSON里面返回的内容。
7.在这个URL的最后,用'top_stories'代替'cbfunc'.新的返回函数top_stories将会在YQL返回JSON后执行。
好了,基本就这些了,运行HTML就能看到结果啦。。
这些都是最基本的,后面还有好多要学的,貌似这段时间又不可能学习了。后面还有服务器什么的。。。。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics