由于工作原因,最近需要用到批量查询手机归属地的功能,研究了一下,主要有3种方式,这3种方式都有其各自的优缺点。废话不说,马上就开始吧:
1. excel函数
excel有非常强大的功能,有各自强大的函数库,还能联网获取网页代码。
1)首先,在第一行A1中输入你要查询的手机号码:
2)然后,在B1输入="https://shouji.51240.com/"&A1&"__shouji/" ,记得,所有的标的符号都是英文字符的,否则excel的函数无法运行。输入后会发现B2变成如下图所示:
3)最后,在C1输入=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(MID(WEBSERVICE(B1),FIND("title",WEBSERVICE(B1))+18,11),"-",""),"手",""),"机","") ,点击回车,C1就会出现下图的结果:
原理是这样的:如下图所示,使用shouji.51240.com这个网站的归属地查询功能,然后在B2里填入查询的手机号码作为查询域名的后缀,最后用excel中的WEBSERVICE()函数进行获取网页的源码,也就是C1中的“WEBSERVICE(B1)”部分,然后使用SUBSTITUE等函数将所需要的部分截取出来,也就是最后的结果。
但是该方法的优缺点比较明显,有点是操作非常快,但是缺点是当数据量比较大的时候,excel直接会崩溃,只能用于查询数据量比较少的操作。而且,WEBSERVICE函数只有windows中excel2013和excel2016版本才支持。
2. 网站上传文件
这个方法就比较推荐了,操作起来比excel更加简单,适合纯小白使用。这里有些人会担心数据泄露的问题,这两种方法都一样,使用别人的网站接口进行查询,都存在这样的问题。但是记得把使用号码前7位数字去做判断即可,这样就没有数据信息泄露的问题了。
3. Python
查询手机号码的归属地用到phone这个库:
这里需要用到两个库:xlrd和xlwt,xlrd是用来读excel,xlwt是用来写excel的。如果用Anaconda的话这两个库就不需要pip安装了,只需要安装phone库即可。
phone库的使用超级简单,返回的是字典dict格式。
而批量获取的经常是在excel准备好一批手机号码,然后读取excel文件中的数据,然后再进行查询输出到新的excel中: