点击“Python大数据人工智能”,选择“星标”
后台回复“666” 获取500G资料
今天以自己的亲身经历给大家分享一个python的实用技能。
前几天老板给安排了一个小活,让我把表格内的手机号归属地和运营商添加上去
我起初以为就几个手机号,没想到一打开发现有200多个,这要是一个一个查,我就不用下班了,为了节省实践,我决定用python解决这个问题。
一、情况分析
首先我找到一个手机号在线查询的网址:
看起来还是比较方便的,只需输入手机号码,点击查询,就会返回归属地及运营商等信息。
用浏览器自带抓包工具分析了一下查询过程:
发现该过程以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知识,但是却能很便利的帮助我们解决工作中的大问题,希望大家在学习基础知识的过程中,也要注意多想实际工作中应用,既能帮我们巩固所需知识查电话归属地,又能提高对学习的积极性。
Python大数据人工智能推学习交流群,欢迎加小编微信号入群
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击网站首页每天更新
站 长 微 信: aiwo51889