使用python批量快速获取手机号归属地及运营商信息;
简介
本方法是使用python的phone库查询,并写入TXT文档中,脚本做了高兼容,不会出错,兼容汉字、空行、异常号等,不会报错。
项目结构
源文件
查询结果
使用说明
首次使用脚本,需要配置以下环境:
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()