使用https://www.juhe.cn/提供的接口,查询归属地

在官网注册key即可使用。

代码如下

  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. import json, urllib, sys
  4. from urllib import urlencode, urlopen
  5. reload(sys)
  6. sys.setdefaultencoding('utf8')
  7. #调用接口,获取结果为二维字典
  8. def getPageCode(url, params):
  9. params = urlencode(params)
  10. f = urllib.urlopen(url, params)
  11. content = f.read()
  12. res = json.loads(content)
  13. return res
  14. #print('Error code: %s'%res["resultcode"])
  15. #对api接口返回数据处理。
  16. def resTest(resdata):
  17. if resdata["resultcode"] == "200":
  18. #返回有效结果
  19. return resdata["result"]
  20. else:
  21. #定义错误字典,resdata["resultcode"]为接口返回的Error code
  22. Errorinfo = {'province':'Error code', 'city':resdata["resultcode"]}
  23. return Errorinfo
  24. #处理字典为单元组列表
  25. def dictDate(data):
  26. province = data["province"]
  27. city = data["city"]
  28. res.append((phoneNum, province, city))
  29. #print('list res is : %s'%res)
  30. return res
  31. #追加保存文件
  32. def writeResult(resultdata):
  33. f = open("location.log", "a")
  34. for num, item, cit in resultdata:
  35. f.write("%s\t" %num)
  36. f.write("%s," %item)
  37. f.write("%s" %cit)
  38. f.write("\n")
  39. f.close()
  40. if __name__ == "__main__":
  41. url = "http://apis.juhe.cn/mobile/get"
  42. for line in open("test.txt", "r"):
  43. #读取电话号码
  44. phoneNum = line.strip(" \t\r\n")
  45. params = {
  46. "phone": phoneNum,
  47. "key": "0ea8e44e4612fb794c29f4979d238efq",
  48. "dtype" : "json",
  49. }
  50. res = []
  51. #调用getPageCode接口,resTest处理数据
  52. #resd = (getPageCode(url, params))
  53. resdate = resTest((getPageCode(url, params)))
  54. #通过函数dictDate处理为单元组列表,
  55. #[('13676512732', u'\u6d52\u6c5f', u'\u6e19\u5dde')]
  56. resUlt = dictDate(resdate)
  57. writeResult(resUlt)

定义号码文本test.txt

  1. 15306525811
  2. 13567156311
  3. 13968170611
  4. 15306525811
  5. 13567156311
  6. 13968170611

调用API接口,查询手机号码归属地(1)https://www.cnblogs.com/outsrkem/p/11219743.html

调用API接口,查询手机号码归属地(2)https://www.cnblogs.com/outsrkem/p/11221003.html

调用API接口,查询手机号码归属地(3)https://www.cnblogs.com/outsrkem/p/11221604.html

调用phone库,查询手机号码归属地(4)https://www.cnblogs.com/outsrkem/p/11236509.html

调用API接口,查询手机号码归属地(1)的更多相关文章

  1. 调用API接口,查询手机号码归属地(3)

    从mysql数据库获取电话号码,查询归属地并插入到数据库 #!/usr/bin/python # -*- coding: utf-8 -*- import json, urllib, sys, pym ...

  2. 调用API接口,查询手机号码归属地(2)

    使用pymysql pip install pymysql 创建mysql测试表 CREATE TABLE `userinfo` ( `id` int(20) NOT NULL AUTO_INCREM ...

  3. C#使用windows服务定时调用api接口

    使用VS创建windows服务项目: 创建好项目  会出现一个设计界面 右键弹出对话框 选择添加安装程序 名字什么的自己可以改: 项目目录: 打开项目中的ProjectInstaller.Design ...

  4. Python调用API接口的几种方式 数据库 脚本

    Python调用API接口的几种方式 2018-01-08 gaoeb97nd... 转自 one_day_day... 修改 微信分享: 相信做过自动化运维的同学都用过API接口来完成某些动作.AP ...

  5. Python调用API接口的几种方式

    Python调用API接口的几种方式 相信做过自动化运维的同学都用过API接口来完成某些动作.API是一套成熟系统所必需的接口,可以被其他系统或脚本来调用,这也是自动化运维的必修课. 本文主要介绍py ...

  6. jquery使用淘宝接口跨域查询手机号码归属地实例

    <h1>手机号码归属地查询</h1>    <div class="outer">        <p>请输入手机号码</p& ...

  7. 调用webservice查询手机号码归属地信息

    Web Services是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务.在这里我们使用soap协议往webservice发送信息,然 ...

  8. Apsara Clouder专项技能认证:实现调用API接口

    一.API 简介 1.API 的概念 API(Application Programming Interface应用程序编程接口)是一些预定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访 ...

  9. spring boot 通过feign调用api接口

    目的:远程调用服务器api,直接上步骤: 1,添加maven依赖,这是必须的: <dependency> <groupId>org.springframework.cloud& ...

随机推荐

  1. Django 自定义模型管理器(Manager)及方法

    转载自:https://www.cnblogs.com/sui776265233/p/11571418.html 1.自定义管理器(Manager) 在语句Book.objects.all()中,ob ...

  2. 07、python的基础-->数据类型、集合、深浅copy

    一.数据类型 1.列表 lis = [11, 22, 33, 44, 55] for i in range(len(lis)): print(i) # i = 0 i = 1 i = 2 del li ...

  3. 跨域篇--JSONP原理

    一篇文章让你明白 jsonp原理详解 什么是JSONP? 先说说JSONP是怎么产生的: 其实网上关于JSONP的讲解有很多,但却千篇一律,而且云里雾里,对于很多刚接触的人来讲理解起来有些困难,着用自 ...

  4. jdk紧急漏洞,XMLDecoder反序列化攻击

    昨天在公司发现了一个jdk中的XMLDecoder反序列化的漏洞,看起来很危险!下面通过两个示例来看看这个漏洞的危害! 示例1:利用XmlDecoder删除本地文件 首先来看这个xmldecoder. ...

  5. Redis Sentinel 高可用方案

      redis 主从复制的问题 Redis主从复制可将主节点数据同步给从节点,从节点此时有两个作用: 1,一旦主节点宕机,从节点作为主节点的备份可以随时顶上来. 2,扩展主节点的读能力,分担主节点读压 ...

  6. C#5.0 异步编程 Async和Await--理解异步方法与线程之间的关系

    这次来理解一下异步方法与线程之间的关系 新建一个控制台程序 代码如下 static void Main(string[] args) { Console.WriteLine("\n进入Mai ...

  7. PAT 乙级练习题1001 害死人不偿命的(3n+1)猜想 (15)

    1001. 害死人不偿命的(3n+1)猜想 (15) 卡拉兹(Callatz)猜想: 对任何一个自然数n,如果它是偶数,那么把它砍掉一半:如果它是奇数,那么把(3n+1)砍掉一半.这样一直反复砍下去, ...

  8. fragment中的onCreateView和onViewCreated的区别和

    (1)  onViewCreated在onCreateView执行完后立即执行. (2)  onCreateView返回的就是fragment要显示的view.

  9. dns轮训python

    环境 python3 先安装dnspython模块 httpclient模块 resolver模块 pip install dnspython pip install hhtpclient pip i ...

  10. shell脚本进行设置启动/关闭

    vi /etc/init.d/confluence ----------------------------- #!/bin/bash# chkconfig: 2345 85 15# Provides ...