基于Python脚本和聚合数据实现手机号码归属地信息查询

聚合数据简介

聚合数据是一个为智能手机开发者,网站站长,移动设备开发人员及图商提供原始数据API服务的综合性云数据平台。包含手机聚合,网站聚合,LBS聚合三部分,其功能类似于Google APIS和百度的APIStore
在学习Python爬虫的过程中,可以尝试使用免费的API来获取一些信息,可以作为一种学习。

(一)如何获取聚合数据?

  • 聚合数据官网注册账号
  • 申请实名认证
  • 申请使用数据

(二)如何使用聚合数据?

(1)查询AppKey值

在完成数据使用申请后,需要等待一定的时间,聚合数据后台才会风分发AppKey,只需这个AppKey,就可以对聚合数据进行访问和调用。
小编这里申请的是免费API—–手机号归属地查询。

AppKey = "0ea8e44e4612fb794c29f4979de48ef7"

(2)查询示例代码

基于Python的手机号码归属地接口调用代码实例。
示例地址:http://code.juhe.cn/docs/1018

基于Python2.x的调用代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import json, urllib
from urllib import urlencode

#----------------------------------
# 手机号码归属地调用示例代码 - 聚合数据
# 在线接口文档:http://www.juhe.cn/docs/11
#----------------------------------

def main():

    #配置您申请的APPKey
    appkey = "*********************"

    #1.手机归属地查询
    request1(appkey,"GET")


 #手机归属地查询
def request1(appkey, m="GET"):
    url = "http://apis.juhe.cn/mobile/get"
    params = {
        "phone" : "", #需要查询的手机号码或手机号码前7位
        "key" : appkey, #应用APPKEY(应用详细页查询)
        "dtype" : "" #返回数据的格式,xml或json,默认json
    }
    params = urlencode(params)
    if m =="GET":
        f = urllib.urlopen("%s?%s" % (url, params))
    else:
        f = urllib.urlopen(url, params)

    content = f.read()
    res = json.loads(content)
    if res:
        error_code = res["error_code"]
        if error_code == 0:
            #成功请求
            print res["result"]
        else:
            print "%s:%s" % (res["error_code"],res["reason"])
    else:
        print "request api error"

if __name__ == '__main__':
    main()

由于聚合数据网站只给出了Python2.x的示例调用代码,这里考虑到许多同学都在学习Python3.x(建议学习3.x版本),特贴出Python3.x的示例代码。其实也没有多大变化,只是urllib模块和print()的改变而已,不清楚的同学可以谷歌一下,了解一下urllib和print在Python2.x和Python3.x中的区别就明白了。

基于Python3.x的调用代码如下:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import json
import urllib.request
from urllib.parse import urlencode


# ----------------------------------
# 手机号码归属地调用示例代码 - 聚合数据
# 在线接口文档:http://www.juhe.cn/docs/11
# ----------------------------------

def main():
    # 配置您申请的APPKey
    appkey = ""

    # 1.手机归属地查询
    request1(appkey, "GET")


# 手机归属地查询
def request1(appkey, m="GET"):
    url = "http://apis.juhe.cn/mobile/get"
    params = {
        "phone": "",  # 需要查询的手机号码或手机号码前7位
        "key": appkey,  # 应用APPKEY(应用详细页查询)
        "bytes": ""  # 返回数据的格式,xml或json,默认json
    }
    params = urlencode(params)
    if m == "GET":
        f = urllib.request.urlopen("%s?%s" % (url, params))
    else:
        f = urllib.request.urlopen(url, params)

    content = f.read().decode("utf-8")
    res = json.loads(content)
    if res:
        error_code = res["error_code"]
        if error_code == 0:
            # 成功请求
            print(res["result"])
        else:
            print("%s:%s" % (res["error_code"], res["reason"]))
    else:
        print("request api error")


if __name__ == '__main__':
    main()

(3)正式调用

在主函数main()中配置已经申请好的AppKey

def main():
    # 配置您申请的APPKey
    appkey = "0ea8e44e4612fb794c29f4979de48ef7"

    # 1.手机归属地查询
    request1(appkey, "GET")

配置 params(参数)

params = {
        "phone": "13855637789",  # 需要查询的手机号码或手机号码前7位(此号码是我随机输入)
        "key": appkey,  # 应用APPKEY(应用详细页查询)
        "bytes": "json"  # 返回数据的格式,xml或json,默认json
    }

直接运行主程序main()

if __name__ == '__main__':
    main()

(4) 错误码参照

服务级错误码参照码(error_code):

错误码说明
201101手机号不能为空
201102错误的手机号
201103查询无结果

系统级错误参照码:

错误码说明
10001错误的请求KEY
10002该KEY无请求权限
10003KEY过期
10004错误的OPENID
10005应用未审核超时,请提交认证
10006未知的请求源
10007未知的请求源
10008被禁止的IP
10009被禁止的KEY
10011当前IP请求超过限制
10012请求超过次数限制
10013测试KEY超过请求限制
10014系统内部异常
10020接口维护
10021接口停用

  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值