前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于Python脚本和聚合数据实现手机号码归属地信息查询

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

作者头像
itlemon
发布2020-04-03 18:00:56
1.8K0
发布2020-04-03 18:00:56
举报
文章被收录于专栏:深入理解Java深入理解Java

聚合数据简介

聚合数据是一个为智能手机开发者,网站站长,移动设备开发人员及图商提供原始数据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无请求权限

10003

KEY过期

10004

错误的OPENID

10005

应用未审核超时,请提交认证

10006

未知的请求源

10007

未知的请求源

10008

被禁止的IP

10009

被禁止的KEY

10011

当前IP请求超过限制

10012

请求超过次数限制

10013

测试KEY超过请求限制

10014

系统内部异常

10020

接口维护

10021

接口停用

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-10-30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 聚合数据简介
    • (一)如何获取聚合数据?
      • (二)如何使用聚合数据?
        • (1)查询AppKey值
        • (2)查询示例代码
        • (3)正式调用
        • (4) 错误码参照
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档