手机号码归属地批量查询功能

朋友有这么一个需求:他从网上查询到自己的通话记录,然后他想把所有北京的号码调出来,可是查到的号码不带归属地,只能一个个的查询,很麻烦,于是我写了一段javascript代码,可以批量查询,代码如下:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>手机号码归属地批量查询</title>

</head>

<body>
<script type="text/javascript" src="js/jquery-1.6.2.min.js"></script>
<script language="javascript">
var timeout = 5;//每条记录查询延时时间,单位:秒
var strContent = "";
var strArray = "";
function getInfo()
{
	strContent = document.getElementById("strContent").value;
	strArray = strContent.split(navigator.appName=="Netscape"?"\n":"\r\n");
	$("#contentDiv").html("");
	getCity(0);
}

function getCity(i)
{
	var num = strArray[i].replace(new RegExp(" ","g"),"").replace(new RegExp("\t","g"),"");
	$.ajax({
		   type: "POST",
		   dataType:"jsonp",
		   url: "http://api.showji.com/Locating/20120413.aspx",
		   data: "m=" + num + "&output=json",
		   jsonpCallback:"querycallback",
		   success: function(msg){
		   $("#contentDiv").html($("#contentDiv").html() + "号码:" + num + "   城市:" + msg.City + "<br />");
		     i++;
			 if(i < strArray.length) {
				 setTimeout("getCity(" + i + ")", timeout * 1000);
			 }
		   }
		});
}
</script>
<form id="form1" name="form1" method="post" action="">
  <p>请输入手机号码(多条记录用回车换行):<br />
    <textarea name="strContent" id="strContent" cols="80" rows="12"></textarea>
    <input type="button" name="Button" value="查询号码所在城市" onclick="getInfo()" />
</p>
  <p id="contentDiv">   </p>
</form>

</body>
</html>

  

代码打包下载:https://files.cnblogs.com/modou/20120420.rar

 

注意内容:

1、代码用到了jquery,需要把jquery的对应代码添加进来

2、我使用的这个网址:http://api.showji.com/Locating/20120413.aspx 抓取的手机归属地,如果该网址发生变化,可以再重新到http://www.showji.com/ 获取相关网址,这个网址可以在该网站查询的时候,开启Fiddler2工具监控到。

3、可能是http://www.showji.com/ 做了限制,在一定时间内查询的次数过多就查询不到对应的结果了,我把查询时间的间隔设为5秒钟,如果号码比较多,等待的时间会比较长一些

posted @ 2012-04-20 10:57  魔豆  阅读(6425)  评论(0编辑  收藏  举报