验证手机号码归属地_一文搞定三种批量查手机号码归属地方法

由于工作原因,最近需要用到批量查询手机归属地的功能,研究了一下,主要有3种方式,这3种方式都有其各自的优缺点。废话不说,马上就开始吧:

1.Excel

excel有非常强大的功能,有各自强大的函数库,还能联网获取网页代码。

注意:仅支持office 2013以后版本,且wps不支持,以下几种查询时,都建议隐藏后四位,因为查询接口仅需前面7位即可,使用完整手机号码,有泄露隐私风险

1)首先,在第一行A1中输入你要查询的手机号码:

3a7d2021efbd53f3ab600511ee608268.png

2)然后,在B1输入  

="shouji.51240.com/"&A1&"__shouji/" 

记得,所有的标的符号都是英文字符的,否则excel的函数无法运行。输入后会发现B2变成如下图所示:

4299cae94128ec4a85e89b910041ffb8.png

3)最后,在C1输入

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(WEBSERVICE(B1),FIND("title",WEBSERVICE(B1))+18,11),"-",""),"手",""),"机","") 

点击回车,C1就会出现下图的结果:

16b1eefc3e5f7ba5ee39ee82692b879c.png

原理是这样的:如下图所示,使用shouji.51240.com这个网站的归属地查询功能,然后在B2里填入查询的手机号码作为查询域名的后缀,最后用excel中的WEBSERVICE()函数进行获取网页的源码,也就是C1中的“WEBSERVICE(B1)”部分,然后使用SUBSTITUE等函数将所需要的部分截取出来,也就是最后的结果。

e40f8f7b52f29e8fc6cceeba7c5cf4df.png

但是该方法的优缺点比较明显,有点是操作非常快,但是缺点是当数据量比较大的时候,excel直接会崩溃,只能用于查询数据量比较少的操作。而且,WEBSERVICE函数只有windows中excel2013和excel2016版本才支持。

2.网站上传文件

14ce3b93f457b7a255cba845d92c2877.png

这个方法就比较推荐了,操作起来比excel更加简单,适合纯小白使用。传送门:https://it365.gitlab.io/zh-cn/phone-helper/?d8k4。

3.Python

查询手机号码的归属地用到phone这个库:

e2f0d239abcc52fc5c92a5ba986637bf.png

这里需要用到两个库:xlrd和xlwt,xlrd是用来读excel,xlwt是用来写excel的。如果用Anaconda的话这两个库就不需要pip安装了,只需要安装phone库即可。phone库的使用超级简单,返回的是字典dict格式。

09822e63733e7af9784382a211640379.png

而批量获取的经常是在excel准备好一批手机号码,然后读取excel文件中的数据,然后再进行查询输出到新的excel中:

from phone import Phone
import xlrd
import xlwt

def Get_Excel_data():
file = 'Tel.xlsx' #电话号码存储的excle表
re1 = xlrd.open_workbook(file)
outwb = xlwt.Workbook() #创建工作簿
outws = outwb.add_sheet("new") #在工作簿中新建一个工作表new
# 读取第一个sheet
ws = re1.sheet_by_index(0)
rows = ws.nrows
# print(rows)
outws.write(0, 0, u'电话号') #给新表的第一行添加对应的标签
outws.write(0, 1, u'省份')
outws.write(0, 2, u'城市')
outws.write(0, 4, u'运营商')
for i in range(0, rows):
Telvalue = int(ws.cell_value(i, 0))
# print(Telvalue)
data = Phone().find(Telvalue)
print(data)
outws.write(i + 1, 0, Telvalue) #给新表的个列添加对应的数据
try:
outws.write(i + 1, 1, data['province'])
outws.write(i + 1, 2, data['city'])
outws.write(i + 1, 3, data['area_code'])
outws.write(i + 1, 4, data['phone_type'])

outwb.save(r'New_Tel.xls')
except:
print("none")

Get_Excel_data()

d451934bc83599295a550b77e3e9c6e0.png

喜欢就点个在看再走吧 db5fc84a5b0a9ef3b78c58d4ddaaee85.png
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值