使用python批量快速獲取手機(jī)號(hào)歸屬地及運(yùn)營(yíng)商信息;
簡(jiǎn)介
本方法是使用python的phone庫(kù)查詢导俘,并寫入TXT文檔中峦耘,腳本做了高兼容,不會(huì)出錯(cuò)旅薄,兼容漢字辅髓、空行、異常號(hào)等少梁,不會(huì)報(bào)錯(cuò)洛口。
項(xiàng)目結(jié)構(gòu)
1583462030101.png
源文件
1583462082658.png
查詢結(jié)果
1583462123578.png
使用說明
首次使用腳本,需要配置以下環(huán)境:
1凯沪、安裝python第焰;
1)、訪問python官網(wǎng)妨马,下載安裝包:https://www.python.org/downloads/挺举,下載版本:3.4及以上版本都行杀赢;
2)、安裝python豹悬;
2葵陵、安裝依賴的庫(kù):命令行執(zhí)行 pip install phone
使用方法:
1、phoneNum.txt中列出所有需要查詢的號(hào)碼瞻佛,注意盡量不要有中文或者空行之類的脱篙;
2、清空result.txt中的內(nèi)容伤柄;
3绊困、雙擊運(yùn)行g(shù)etPhoneInfo.py文件,等待執(zhí)行完畢适刀;
4秤朗、result.txt中的內(nèi)容就是最新的手機(jī)號(hào)歸屬地信息;
如果手機(jī)號(hào)后出現(xiàn)Error笔喉,請(qǐng)手動(dòng)查詢取视,部分號(hào)段phone庫(kù)不支持;
代碼
#coding=utf-8
from phone import Phone
def getPhoneNum(file): #讀取源文件常挚,獲取待查詢的手機(jī)號(hào)
try:
with open(file,"r") as f:
phonList = f.readlines() #讀取源手機(jī)號(hào)文檔中的手機(jī)號(hào)
#print(phonList)
return phonList #返回手機(jī)號(hào)列表作谭。phonList
except: #兼容讀取文檔失敗
pass
def getPhoneInfo(phoneNum): #查詢函數(shù)
info = Phone().find(phoneNum) #通過phone庫(kù)查詢
try: #返回所有查詢的信息
phone = info['phone'] #手機(jī)號(hào)
province = info['province'] #歸屬地:省份
city = info['city'] #歸屬地,城市
zip_code = info['zip_code'] #郵政編碼
area_code = info['area_code'] #區(qū)域編碼
phone_type = info['phone_type'] #手機(jī)號(hào)運(yùn)營(yíng)商
print(phone+"\t"+province+city+"\t"+phone_type)
return ("\n"+phone+" \t"+province+city+" \t"+phone_type) #因?yàn)槲抑恍枰謾C(jī)號(hào)奄毡、區(qū)域折欠、運(yùn)營(yíng)商,所以只返回這三個(gè)字段吼过,其他字段锐秦,可以自己按需添加;
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函數(shù)盗忱,讀取源文件酱床。
listResult = []
for i in listPhoneNum:
try:
res = getPhoneInfo(i.strip("\n"))
listResult.append(res)
with open("result.txt","a") as f: #寫入結(jié)果文檔
f.write(res)
f.close()
except: #兼容出錯(cuò)
res = "\n"+str(i).strip("\n") + "\t" + "Error!"
with open("result.txt","a") as f:
f.write(res)
f.close()