初步接触yahoo的yql雅虎查询语言_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > 初步接触yahoo的yql雅虎查询语言

初步接触yahoo的yql雅虎查询语言

 2010/9/19 23:34:15  chengxianju  http://4nail.javaeye.com  我要评论(0)
  • 摘要:由于,最近搞一个根据手机号码,查手机号码归属地这个功能,网上一搜手机号码归属地api,一查,网易竟然有这个api查询手机号码归属地:http://www.yodao.com/smartresult-xml/search.s?type=mobile&q=手机号举例:http://www.yodao.com/smartresult-xml/search.s?type=mobile&q=13615600386返回xml:<?xmlversion="1
  • 标签:初步接触yahoo yql雅虎查询语言

由于,最近搞一个根据手机号码,查手机号码归属地这个功能,网上一搜手机号码归属地api,一查,网易竟然有这个api

?

查询手机号码归属地:

http://www.yodao.com/smartresult-xml/search.s?type=mobile&q=手机号

举例:http://www.yodao.com/smartresult-xml/search.s?type=mobile&q=13615600386

返回xml:

<?xml version="1.0" encoding="gbk" ?> 
- <smartresult>
- <product type="mobile">
  <phonenum>13615600386</phonenum> 
  <location>安徽 合肥</location> 
  </product>
  </smartresult>

我只知道jquery能跨域请求,有两个方法,$.getScript()和$.getJSON(),但是网易的这个返回的是xml,要转换成json,就可以用$.getJSON()方法了,我是这样做的,登陆yahoo的yql查询语言控制台,网址:http://developer.yahoo.com/yql/console/中的输入框中输入

?

select * from xml where url="http://www.youdao.com/smartresult-xml/search.s?type=mobile&q=13615600386",选择转换程成json,然后test,然后就生成了json,如下:

?

?

{
?"query": {
??"count": "1",
??"created": "2010-09-14T08:37:54Z",
??"lang": "en-US",
??"results": {
???"smartresult": {
????"product": {
?????"type": "mobile",
?????"phonenum": "13615600386",
?????"location": "安徽 合肥"
????}
???}
??}
?}
}

就这样,然后jquery 跨域请求下面的这个地址:http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22http%3A%2F%2Fwww.youdao.com%2Fsmartresult-xml%2Fsearch.s%3Ftype%3Dmobile%26q%3D13615600386%22&format=json&callback=?

?

就OK啦

直接上js代码:

?

$(function(){
	$("#report-window").window({closed:true});
	//查询手机归属地
	$('#attribute').click(function(){								   
		var q=parseInt($('#tel').text());
           if(isNaN(q))
		   {
			 $.messager.alert("提示信息","电话号码不存在或号码错误","info");
			 return false;
		   }
		$(this).html("<img src='/Upload/Images/2010091923/054EE911D012806F.gif'/>");
		$.getJSON("http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D%22http%3A%2F%2Fwww.yodao.com%2Fsmartresult-xml%2Fsearch.s%3Ftype%3Dmobile%26q%3D"+q+"%22&format=json&callback=?",function(data){														
		var telphone=data.query.results.smartresult.product.location;
		$('#attribute').text(telphone);
		})
	})
	});

?

?

官方网站:

http://developer.yahoo.com/yql/

YQL(YahooQuery Language)可以说是一种类似SQL的查询语言,类似于包括XPath/XQuery, 微软的LINQ, 谷歌的GQL, FacebookFQL, 以及Amazon SimpleDB的查询接口CouchDB等大多数的现代查询语言。最主要是它的用法比较有前途。他查询的数据源可以是数据库的表结构,也可以是RSS,HTML, ATOM, JSON, XML等等形式的数据集。使用方法是通过发送HTTP请求到REST终端来进行查询,他的网站是"http://developer.yahoo.com/yql/console

主要是YQL就是一个对静态(必须滴)网页,或者RSS的远程链接进行分析得到你自己规定的XPATH的进行过滤后,返回给你xml格式或者json格式的远程连接:

?

这个用来解决rss格式的新闻解析,比如得到rss腾讯的新闻

select * from rss where url="http://news.qq.com/newsgn/rss_newsgn.xml"

?

然后通过yql控制台:转换成json,或者xml.就可以处理了

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20rss%20where%20url%3D%22http%3A%2F%2Fnews.qq.com%2Fnewsgn%2Frss_newsgn.xml%22&format=json&callback=

?

关于更多的功能,需要日后继续发觉~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

发表评论
用户名: 匿名