使用https://www.juhe.cn/
提供的接口,查詢歸屬地
在官網注冊key即可使用。
代碼如下
#!/usr/bin/python
# -*- coding: utf-8 -*-
import json, urllib, sys
from urllib import urlencode, urlopen
reload(sys)
sys.setdefaultencoding('utf8')
#調用接口,獲取結果為二維字典
def getPageCode(url, params):
params = urlencode(params)
f = urllib.urlopen(url, params)
content = f.read()
res = json.loads(content)
return res
#print('Error code: %s'%res["resultcode"])
#對api接口返回數據處理。
def resTest(resdata):
if resdata["resultcode"] == "200":
#返回有效結果
return resdata["result"]
else:
#定義錯誤字典,resdata["resultcode"]為接口返回的Error code
Errorinfo = {'province':'Error code', 'city':resdata["resultcode"]}
return Errorinfo
#處理字典為單元組列表
def dictDate(data):
province = data["province"]
city = data["city"]
res.append((phoneNum, province, city))
#print('list res is : %s'%res)
return res
#追加保存文件
def writeResult(resultdata):
f = open("location.log", "a")
for num, item, cit in resultdata:
f.write("%s\t" %num)
f.write("%s," %item)
f.write("%s" %cit)
f.write("\n")
f.close()
if __name__ == "__main__":
url = "http://apis.juhe.cn/mobile/get"
for line in open("test.txt", "r"):
#讀取電話號碼
phoneNum = line.strip(" \t\r\n")
params = {
"phone": phoneNum,
"key": "0ea8e44e4612fb794c29f4979d238efq",
"dtype" : "json",
}
res = []
#調用getPageCode接口,resTest處理數據
#resd = (getPageCode(url, params))
resdate = resTest((getPageCode(url, params)))
#通過函數dictDate處理為單元組列表,
#[('13676512732', u'\u6d52\u6c5f', u'\u6e19\u5dde')]
resUlt = dictDate(resdate)
writeResult(resUlt)
定義號碼文本test.txt
15306525811
13567156311
13968170611
15306525811
13567156311
13968170611