这里有新鲜出炉的 Python 多线程编程,程序狗速度看过来!
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
这篇文章主要介绍了 Python 实现的手机号归属地相关信息查询功能, 涉及 Python 文件读取及基于第三方接口调用查询信息的相关操作技巧, 需要的朋友可以参考下
本文实例讲述了 Python 实现的手机号归属地相关信息查询功能。分享给大家供大家参考,具体如下:
根据指定的手机号码,查询其归属地等相关信息,Python 实现:
手机号文件:test.txt
- 13693252552 13296629989 13640810839 15755106631 15119622732 13904446048 18874791953 13695658500 13695658547 15950179080 15573462779 15217624651 15018485989 13706522482 13666519777 13666515188 18857287528 15575394501
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)
希望本文所述对大家 Python 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0721/336408.html