天天看点

使用python的Phone库批量快速查询手机号归属地及运营商信息

目录

  • 使用python批量快速获取手机号归属地及运营商信息;

使用python批量快速获取手机号归属地及运营商信息;

简介

​ 本方法是使用python的phone库查询,并写入TXT文档中,脚本做了高兼容,不会出错,兼容汉字、空行、异常号等,不会报错。

项目结构

使用python的Phone库批量快速查询手机号归属地及运营商信息
源文件
使用python的Phone库批量快速查询手机号归属地及运营商信息
查询结果
使用python的Phone库批量快速查询手机号归属地及运营商信息

使用说明

首次使用脚本,需要配置以下环境:

1、安装python;

1)、访问python官网,下载安装包:https://www.python.org/downloads/,下载版本:3.4及以上版本都行;

2)、安装python;

2、安装依赖的库:命令行执行 pip install phone

使用方法:

1、phoneNum.txt中列出所有需要查询的号码,注意尽量不要有中文或者空行之类的;

2、清空result.txt中的内容;

3、双击运行getPhoneInfo.py文件,等待执行完毕;

4、result.txt中的内容就是最新的手机号归属地信息;

如果手机号后出现Error,请手动查询,部分号段phone库不支持;

代码

#coding=utf-8
from phone import Phone

def getPhoneNum(file):      #读取源文件,获取待查询的手机号
    try:
        with open(file,"r") as f:
            phonList = f.readlines()    #读取源手机号文档中的手机号
            #print(phonList)    
            return phonList     #返回手机号列表。phonList
    except:     #兼容读取文档失败
        pass

def getPhoneInfo(phoneNum):     #查询函数
    info = Phone().find(phoneNum)   #通过phone库查询
    try:    #返回所有查询的信息
        phone = info['phone']   #手机号
        province = info['province'] #归属地:省份
        city = info['city'] #归属地,城市
        zip_code = info['zip_code']     #邮政编码
        area_code = info['area_code']   #区域编码
        phone_type = info['phone_type'] #手机号运营商
        print(phone+"\t"+province+city+"\t"+phone_type)
        return ("\n"+phone+" \t"+province+city+" \t"+phone_type)    #因为我只需要手机号、区域、运营商,所以只返回这三个字段,其他字段,可以自己按需添加;
    except:     #兼容查询失败的情况
        print("\n"+str(phoneNum.strip("\n"))+" \t"+"Error!")
        return ("\n"+str(phoneNum.strip("\n"))+" \t"+"Error!")  

if __name__ == "__main__":
    listPhoneNum = getPhoneNum("phoneNum.txt")  #通过getPhoneNum函数,读取源文件。
    listResult = []

    for i in listPhoneNum:
        try:
            res = getPhoneInfo(i.strip("\n"))
            listResult.append(res)
            with open("result.txt","a") as f:   #写入结果文档
                f.write(res)
                f.close()
        except:     #兼容出错
            res = "\n"+str(i).strip("\n") + "\t" + "Error!"     
            with open("result.txt","a") as f:
                f.write(res)
                f.close()