|
求助各位大大,想用ip138的接口来写个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)
复制代码 求解!! 谢谢了
|
|