博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python实现手机号归属地相关信息查询
阅读量:7104 次
发布时间:2019-06-28

本文共 1864 字,大约阅读时间需要 6 分钟。

根据指定的手机号码,查询其归属地等相关信息,python实现:

手机号文件:phone.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
18815484184
18818701639
18818773287
18818791154
18819026693
18820160604
18823376260
18823669247
18823834556
18824635390
18824722564
18824724252
18824728654
18824731004
18824734215
18824766242
18824932474
18825243001
18825255219
18825269277
18825276414
18825287578
18826014855
18826017814
18826532860
18826573310
18833526414
18837925448
18846911049
18875909323
18876361443

python实现:

# coding=UTF-8

# get provider information by phoneNumber

from urllib import urlopen

import re

# get html source code for url

def getPageCode(url):

file = urlopen(url)

text = file.read()

file.close()

# text = text.decode("utf-8") # depending on coding of source code responded

return text

# parse html source code to get provider information

def parseString(src, result):

pat = []

pat.append('(?<=归属地:</span>).+(?=<br />)')

pat.append('(?<=卡类型:</span>).+(?=<br />)')

pat.append('(?<=运营商:</span>).+(?=<br />)')

pat.append('(?<=区号:</span>)\d+(?=<br />)')

pat.append('(?<=邮编:</span>)\d+(?=<br />)')

item = []

for i in range(len(pat)):

m = re.search(pat[i], src)

if m:

v = m.group(0)

item.append(v)

return item

# get provider by phoneNum

def getProvider(phoneNum, result):

url = "http://www.sjgsd.com/n/?q=%s" %phoneNum

text = getPageCode(url)

item = parseString(text, result)

result.append((phoneNum, item))

# write result to file

def writeResult(result):

f = open("result.log", "w")

for num, item in result:

f.write("%s:\t" %num)

for i in item:

f.write("%s,\t" %i)

f.write("\n")

f.close()

if __name__ == "__main__":

result = []

for line in open("test.txt", "r"):

phoneNum = line.strip(" \t\r\n")

getProvider(phoneNum, result)

print("%s is finished" %phoneNum)

writeResult(result)

      本文转自027ryan  51CTO博客,原文链接:http://blog.51cto.com/ucode/1735183,如需转载请自行联系原作者

你可能感兴趣的文章
OpenGL ES2.0 的三种变量类型(uniform,attribute和varying)
查看>>
我的友情链接
查看>>
使用VNC实现远程管理
查看>>
LVM 分区一步一步详解 centos6.3
查看>>
Spring和SpringMVC的关系
查看>>
Weex从入门到放弃
查看>>
JDBC简单用法
查看>>
javascript clipboardData对象详解
查看>>
softether *** ubuntu部署
查看>>
我的友情链接
查看>>
云盾防Ddos文献之应对篇 ——DDoS防御方案
查看>>
我的友情链接
查看>>
64位操作系统不能安装64位虚拟机的解决办法
查看>>
怎样在log4j.xml配置文件中引入变量:小公司经验较多的我和阿里UC等大公司经验较多的Boss,一些技术交流和探讨...
查看>>
OpenJDK源码研究笔记(五)-缓存Integer等类型的频繁使用的数据和对象,大幅度提升性能(一道经典的Java笔试题)...
查看>>
什么是自然语言处理--学习笔记
查看>>
网闸中的核心技术
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
pythonic
查看>>