用python批量查询表格中手机号的运营商及归属地!
今天以自己的亲身经历给大家分享一个python的实用技能。
前几天老板给安排了一个小活,让我把表格内的手机号归属地和运营商添加上去
我起初以为就几个手机号,没想到一打开发现有200多个,这要是一个一个查,我就不用下班了,为了节省实践,我决定用python解决这个问题。
一、情况分析
首先我找到一个手机号在线查询的网址:
https://tool.lu/mobile/
看起来还是比较方便的,只需输入手机号码,点击查询,就会返回归属地及运营商等信息。
用浏览器自带抓包工具分析了一下查询过程:
发现该过程以post请求实现,以手机号和1个固定值为参数,返回结果为json格式的数据,包含归属地及运营商等信息。
二、python实现
1.生成随机手机号码
为了保护隐私,我决定用python自动生成一批手机号来完成此次试验
首先,在晚上找了一批手机号码段:
将这些号码段以顿号相隔组成字符串,然后用split分割成列表,再用radom.choice从中随机取出1个,最后在随机生成8位数字,将两者加到一起就组成1个手机号了,生成30个随机手机号的代码如下:
nums_start='139、138、137、136、135、134、159、158、157、' \ '150、151、152、147、188、187、182、183、184、' \ '178、130、131、132、156、155、186、185、145、176、' \ '133、153、189、180、181、177、173'for i in range(30): L = random.randint(10000000, 99999999) nums_list=nums_start.split('、') phonenum=random.choice(nums_list)+str(L)
2.编写网络爬虫程序
根据第一步的分析过程,我们只需要依次将生成的手机号带入post请求的参数,然后再解析返回的json数据,将手机号、归属地及运营商等信息另存入1个表格就ok了,主要通过pandas函数实现。因为我发现pandas库操作表格真是太方便了,需要经常用到表格的朋友一定要好好学一学。
批量爬取手机号归属地及运营商的代码如下:
for i in range(30): L = random.randint(10000000, 99999999) nums_list=nums_start.split('、') phonenum=random.choice(nums_list)+str(L) data={ 'mobile':phonenum, 'operate':'query' } response=requests.get(url,headers=header,params=data) result=json.loads(response.text) provice=result['text']['province'] city=result['text']['city'] corp=result['text']['corp'] phones.append(phonenum) #手机号 areas.append(provice+city) #归属地 corps.append(corp)data={'手机号':phones,'归属地':areas,'运营商':corps}dataframe=pd.DataFrame(data)dataframe.to_excel('result1.xlsx', index=False)
最终效果如下:
小结:本次给大家带来的是python在职场应用的一角,用到的都是最基础的python知识,但是却能很便利的帮助我们解决工作中的大问题,希望大家在学习基础知识的过程中,也要注意多想实际工作中应用,既能帮我们巩固所需知识,又能提高对学习的积极性。
源码获取私信小编01