`
chengxianju
  • 浏览: 247955 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

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

    博客分类:
  • php
阅读更多

由于,最近搞一个根据手机号码,查手机号码归属地这个功能,网上一搜手机号码归属地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='http://zufang.0551fangchan.com/images/loading.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=

 

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

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics