分享

python实现手机号归属地相关信息查询

 枯井道人 2016-06-29

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

手机号文件:test.txt

[plain] view plain copy
  1. 13693252552  
  2. 13296629989  
  3. 13640810839  
  4. 15755106631  
  5. 15119622732  
  6. 13904446048  
  7. 18874791953  
  8. 13695658500  
  9. 13695658547  
  10. 15950179080  
  11. 15573462779  
  12. 15217624651  
  13. 15018485989  
  14. 13706522482  
  15. 13666519777  
  16. 13666515188  
  17. 18857287528  
  18. 15575394501  

python实现:

[python] view plain copy
  1. # coding=UTF-8  
  2.   
  3. # get provider information by phoneNumber  
  4.   
  5. from urllib import urlopen  
  6. import re  
  7.   
  8. # get html source code for url  
  9. def getPageCode(url):  
  10.     file = urlopen(url)  
  11.     text = file.read()  
  12.     file.close()  
  13. #   text = text.decode("utf-8")     # depending on coding of source code responded  
  14.     return text  
  15.   
  16. # parse html source code to get provider information  
  17. def parseString(src, result):  
  18.     pat = []  
  19.     pat.append('(?<=归属地:</span>).+(?=<br />)')  
  20.     pat.append('(?<=卡类型:</span>).+(?=<br />)')  
  21.     pat.append('(?<=运营商:</span>).+(?=<br />)')  
  22.     pat.append('(?<=区号:</span>)\d+(?=<br />)')  
  23.     pat.append('(?<=邮编:</span>)\d+(?=<br />)')  
  24.   
  25.     item = []  
  26.     for i in range(len(pat)):  
  27.         m = re.search(pat[i], src)  
  28.         if m:  
  29.             v = m.group(0)  
  30.             item.append(v)  
  31.     return item  
  32.   
  33. # get provider by phoneNum  
  34. def getProvider(phoneNum, result):  
  35.     url = "http://www./n/?q=%s" %phoneNum  
  36.     text = getPageCode(url)  
  37.     item = parseString(text, result)  
  38.     result.append((phoneNum, item))  
  39.   
  40. # write result to file  
  41. def writeResult(result):  
  42.     f = open("result.log", "w")  
  43.     for num, item in result:  
  44.         f.write("%s:\t" %num)  
  45.         for i in item:  
  46.             f.write("%s,\t" %i)  
  47.         f.write("\n")  
  48.     f.close()  
  49.   
  50. if __name__ == "__main__":  
  51.     result = []  
  52.     for line in open("test.txt", "r"):  
  53.         phoneNum = line.strip(" \t\r\n")  
  54.         getProvider(phoneNum, result)  
  55.         print("%s is finished" %phoneNum)  
  56.   
  57.     writeResult(result)  


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约