Python查找电话号码归属地、邮编、运营商信息等
# -*- coding: utf-8 -*-
1. 查找单个电话号码
from phone import Phone def get_phone_info(phone_num):
phone_info = Phone().find(phone_num)
try:
phone = phone_info['phone']
province = phone_info['province'] #省
city = phone_info['city'] #城市
zip_code = phone_info['zip_code'] #邮编
area_code = phone_info['area_code'] #区号
phone_type = phone_info['phone_type'] #运营商
except:
print('----- the phone number is empty, please check your phone number! -----')
return phone, province, city, zip_code, area_code, phone_type if __name__ == "__main__":
phone_num = '177********' #输入要查询的电话号码,注意只能是三大运营商的手机号码
if len(phone_num)==0:
print('please input your phone number first!')
phone_num = input("phone number:")
phone_info = get_phone_info(phone_num) #列表返回
print(phone_info[0]) #电话号
print(phone_info[1]) #省份
print(phone_info[2]) #城市
print(phone_info[3]) #邮编
print(phone_info[4]) #区号
print(phone_info[5]) #运营商
2. 查找excel里面的电话号码
from phone import Phone
import xlrd
import os
import xlsxwriter def get_phone_info(phone_num):
phone_info = Phone().find(phone_num)
try:
phone = phone_info['phone']
province = phone_info['province'] #省
city = phone_info['city'] #城市
zip_code = phone_info['zip_code'] #邮编
area_code = phone_info['area_code'] #区号
phone_type = phone_info['phone_type'] #运营商
except:
print('----- the phone number is empty, please check your phone number! -----')
return phone, province, city, zip_code, area_code, phone_type def get_phone_info_excel(phone_number_path, sheet_num = 0):
#解析地址
file_name = os.path.splitext(phone_number_path)[0]
file_realname = file_name.split('\\')[-1] #文件名
print(file_realname) myWorkbook = xlsxwriter.Workbook(file_name+'_get_info.xlsx')#创建一个excel文件,用于待会写数据
sheet_file_realname = myWorkbook.add_worksheet(file_realname)#在文件中创建一个名为file_realname的sheet,不加名字默认为sheet1
bold= myWorkbook.add_format({'bold':True})#设置一个加粗的格式对象
# workfomat = workbook.add_format({
# 'bold' : True, #字体加粗
# 'border' : 1, #单元格边框宽度
# 'align' : 'center', #对齐方式
# 'valign' : 'vcenter', #字体对齐方式
# 'fg_color' : '#F4B084', #单元格背景颜色
# })
sheet_file_realname.write(0, 0, u'电话号',bold) #给第一行加标签
sheet_file_realname.write(0, 1, u'省份',bold)
sheet_file_realname.write(0, 2, u'城市',bold)
sheet_file_realname.write(0, 3, u'邮编',bold)
sheet_file_realname.write(0, 4, u'区号',bold)
sheet_file_realname.write(0, 5, u'运营商',bold) #设置读Excel的编码格式
xlrd.Book.encoding = "gbk"
rb = xlrd.open_workbook(phone_number_path) sheet = rb.sheet_by_index(sheet_num) #读第几个sheet,默认为第一个
nrows = sheet.nrows
for i in range(nrows):
phone_num = int(sheet.cell_value(i, 0)) #假设电话号码在第一列,从第一行开始,也就是索引(0,0),
#int是因为读入的时候自动变成float,会超过电话号码长度
phone_info = get_phone_info(phone_num)
sheet_file_realname.write(i + 1, 0, phone_info[0])
sheet_file_realname.write(i + 1, 1, phone_info[1])
sheet_file_realname.write(i + 1, 2, phone_info[2])
sheet_file_realname.write(i + 1, 3, phone_info[3])
sheet_file_realname.write(i + 1, 4, phone_info[4])
sheet_file_realname.write(i + 1, 5, phone_info[5])
myWorkbook.close() if __name__ == "__main__":
phone_number_path = r'D:\Python_workspace\spyder_space\电话号码.xlsx'
get_phone_info_excel(phone_number_path)
3. 安装phone包:pip install phone
4. 如果电话号码查不到信息或者输入的不在解析范围内,会报错:UnboundLocalError: local variable 'phone' referenced before assignment,那是因为并没有执行get_phone_info函数的try语句,却return了try语句中的参数造成的。
参考:https://www.cnblogs.com/yaoqian/p/9358107.html
Python查找电话号码归属地、邮编、运营商信息等的更多相关文章
- MTK Android 读取SIM卡参数,获取sim卡运营商信息
android 获取sim卡运营商信息(转) TelephonyManager tm = (TelephonyManager)Context.getSystemService(Context.TE ...
- # Linux Whois3获取 运营商信息
Linux Whois3获取 运营商信息 APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信息也是对外公开的,并提供了一个查询工具,下面就让我们看看如何在Linux ...
- Android系统分析之运营商显示流程分析之运营商信息的读取流程二
运营商显示流程分析之运营商信息的读取流程 一. SIM卡运营商信息的读取 从前面的 运营商信息的获取和赋值 可以知道SIM卡运营商的赋值最终是在 SIMRecords 中完成的, 而SIM卡信息的相关 ...
- Java ip地址查询,根据ip接口获得ip所在省市区,邮编,运营商等
早上一来,项目经理就说需要添加一个用户ip归属地查询功能,然后在网上搜罗半天,研究出一个比较简单的方法,通过接口返回地址json数据 有百度接口,新浪接口,这里用的是淘宝ip接口 通过淘宝IP地址库获 ...
- Android 获取运营商信息(完整版)-解决高通,MTK等双卡问题
由于国内的运营商问题,双卡手机获取IMSI号问题要根据厂商API 来实现. 下面我们就来做一套完整的分析运营商获取IMSI号逻辑. 1,首先我们要判断手机的平台. 1.1,判断手机是否MTK平台 1 ...
- github开源的一些ip解析 ,运营商信息,经纬度 地址 后续开发使用
https://github.com/wzhe06/ipdatabase ip解析 https://github.com/flyaction/ipdatabase 比较新 https://githu ...
- PHP--根据手机号-淘宝平台获取归属地运营商信息
//获取手机账号信息 public function get_mobile_area($mobile){ $sms = array('province'=>'', 'supplier'=> ...
- Android手机上判断网络运营商
我们想获取手机的运营商信息.通常都会去调用系统的TelephonyManager类的取数据.但是很多时候可能取不到卡的信息(例如双卡手机和 一些特殊卡),这样就区别不了运营商了.但是有时候我们的需求要 ...
- WordPress显示评论者IP归属地、浏览器、终端设备、电信运营商
在网上查资料闲逛,偶然间看到了张戈博客的评论框有点意思,于是就收走拿到了我的米扑博客. 本文为米扑博客原创:总结分享 WordPress显示评论者IP归属地.浏览器.终端设备.电信运营商 WordPr ...
随机推荐
- 汉字转拼音插件:LM-PinYin.js
CDN:http://dtdxrk.github.io/jsPlug/pinyin/LM-PinYin.js demo演示地址:http://dtdxrk.github.io/jsPlug/pinyi ...
- 07点睛Spring4.1-BeanPostProcessor
7.1 BeanPostProcessor spring通过BeanPostProcessor接口可以对所有bean或者指定的某些bean的初始化前后对bean的检查或者修改提供支持; 使用postP ...
- SPSS 习题-2
1.有关SPSS数据字典的说法,正确的是: AA. SPSS 数据集的数据字典可以复制到其他数据集中B. SPSS数据集的数据字典是不能复制的C. SPSS的数据字典可以通过“复制”和“粘贴”在不同 ...
- 理解Hybrid接口的应用
Hybrid接口既可以连接普通终端的接入链路又可以连接交换机间的干道链路,特允许多个vlan的帧通过,并可以在出接口方向将某些vlan帧的标签剥掉. 通过配置Hybrid接口,能过实现对VLAN标签的 ...
- formSelects隐藏功能键
隐藏后 方法: // selectId就是select的id,这是在select渲染完后执行 $("#selectId").parent().find(".xm-sele ...
- Cookies和Sessions
Cookie和Session 为什么会有cookie和session? 由于http协议是无状态的 无法记住用户是谁,cookie主要是在浏览器上记录客户的状态,session主要是用来在服务端记录客 ...
- [转帖]“腾百万”之后,腾讯的云操作系统VStation单集群调度达10万台
“腾百万”之后,腾讯的云操作系统VStation单集群调度达10万台 https://www.leiphone.com/news/201909/4BsKCJtvvUCEb66c.html 腾讯有超过1 ...
- Word 中批量修改所有表格格式样式
1. 引言 我们在使用Word排版编写书籍时候,可能会带有许多表格,上百,甚至上千个表格都是有可能的.这么多的表格对于后期的样式修改是非常不利的,有什么好的方法能够一次性修改文档中所有的表格,将其统一 ...
- shell从简单到脱坑
1.计算1-100的和(seq 1 100 使用反引号括起来的比较坑) #!/bin/bash ` do sum=$[$i+$sum] done echo $sum 2.编写shell脚本,要求输入一 ...
- springboot 的启动流程
1.我们springboot 项目的启动类如下. 方式1 @SpringBootApplicationpublic class SpringbootZkLockApplication { public ...