目錄
- 使用python批量快速擷取手機号歸屬地及營運商資訊;
使用python批量快速擷取手機号歸屬地及營運商資訊;
簡介
本方法是使用python的phone庫查詢,并寫入TXT文檔中,腳本做了高相容,不會出錯,相容漢字、空行、異常号等,不會報錯。
項目結構
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiETPwJWZ3ZCMwcTP39zZuBnLuVzRjVXVE5keVpnT4dGROpHMT9ENVR0T5tGVNVTQU9EeNRUT3lERNlHMT9UMnRlTz0EVNZXTE10dJRUT5hzUPFzZU50MNRVT2NmMiNnSywEd5ITW110MaZHetlVdO1GT3lERNl3YXJGc5kHT20ESjBjUIF2Lc12bj5SYphXa5VWen5WY35iclN3Ztl2Lc9CX6MHc0RHaiojIsJye.png)
源檔案
查詢結果
使用說明
首次使用腳本,需要配置以下環境:
1、安裝python;
1)、通路python官網,下載下傳安裝包:https://www.python.org/downloads/,下載下傳版本:3.4及以上版本都行;
2)、安裝python;
2、安裝依賴的庫:指令行執行 pip install phone
使用方法:
1、phoneNum.txt中列出所有需要查詢的号碼,注意盡量不要有中文或者空行之類的;
2、清空result.txt中的内容;
3、輕按兩下運作getPhoneInfo.py檔案,等待執行完畢;
4、result.txt中的内容就是最新的手機号歸屬地資訊;
如果手機号後出現Error,請手動查詢,部分号段phone庫不支援;
代碼
#coding=utf-8
from phone import Phone
def getPhoneNum(file): #讀取源檔案,擷取待查詢的手機号
try:
with open(file,"r") as f:
phonList = f.readlines() #讀取源手機号文檔中的手機号
#print(phonList)
return phonList #傳回手機号清單。phonList
except: #相容讀取文檔失敗
pass
def getPhoneInfo(phoneNum): #查詢函數
info = Phone().find(phoneNum) #通過phone庫查詢
try: #傳回所有查詢的資訊
phone = info['phone'] #手機号
province = info['province'] #歸屬地:省份
city = info['city'] #歸屬地,城市
zip_code = info['zip_code'] #郵政編碼
area_code = info['area_code'] #區域編碼
phone_type = info['phone_type'] #手機号營運商
print(phone+"\t"+province+city+"\t"+phone_type)
return ("\n"+phone+" \t"+province+city+" \t"+phone_type) #因為我隻需要手機号、區域、營運商,是以隻傳回這三個字段,其他字段,可以自己按需添加;
except: #相容查詢失敗的情況
print("\n"+str(phoneNum.strip("\n"))+" \t"+"Error!")
return ("\n"+str(phoneNum.strip("\n"))+" \t"+"Error!")
if __name__ == "__main__":
listPhoneNum = getPhoneNum("phoneNum.txt") #通過getPhoneNum函數,讀取源檔案。
listResult = []
for i in listPhoneNum:
try:
res = getPhoneInfo(i.strip("\n"))
listResult.append(res)
with open("result.txt","a") as f: #寫入結果文檔
f.write(res)
f.close()
except: #相容出錯
res = "\n"+str(i).strip("\n") + "\t" + "Error!"
with open("result.txt","a") as f:
f.write(res)
f.close()