wordpress首页tag标签调取杭州网站建设 seo
1、该功能需要两个库,random和phone
2、已移动手机号为例,首先导入需要的库,然后定义一个类,在init里定义移动手机号的前缀,self.yd里的手机号前三位都是属于移动的。
# coding:utf-8
import random
from phone import Phoneclass CellPhoneNumber:def __init__(self):# 定义移动手机号前缀self.yd = ['134', '135', '136', '137', '138', '139', '147', '150', '151', '152','157', '158', '159', '165', '178', '182', '183', '187', '188']
3、建mobile函数,定义空的数组,用于储存生成的手机号
def mobile(self, yds):array = []print('正在生成前缀是 ' + yds + ' 的手机号')
4、循环随机生成手机号后8位的数,然后把手机号的前缀和随机生成的后8位组合成一个完整的手机号
for i in range(500000):a = random.randint(0, 9)b = random.randint(0, 9)c = random.randint(0, 9)d = random.randint(0, 9)e = random.randint(0, 9)f = random.randint(0, 9)g = random.randint(0, 9)h = random.randint(0, 9)data = str(yds) + str(a) + str(b) + str(c) + str(d) + str(e) + str(f) + str(g) + str(h)
5、判断组成的手机号是否在array数组里,如果不在,则把生成的手机号追加到array里。由于生成的手机号较多,我添加了一个生成进度的判断。
if data not in array:array.append(data)# 打印生成进度if i == 124999:print('前缀:' + str(yds) + ' 已生成 25%')elif i == 249999:print('前缀:' + str(yds) + ' 已生成 50%')elif i == 375999:print('前缀:' + str(yds) + ' 已生成 75%')elif i == 499999:print('前缀:' + str(yds) + ' 已生成 100%')print('-----------------------------------------')return array
6、再建一个call_true的函数,循环获取init里定义的值,运行上面的mobile函数生成手机号,实例化phone,phone用于判断手机号的详细信息,如果phone解析失败会返回空
定义一个空的数组,把能够解析的手机号储存起来
def call_true(self):for i in self.yd:data = self.mobile(i)# print(data)p = Phone()true = []
7、循环获取mobile函数返回的手机号信息,并判断是否可以查询成功。查询失败表示手机号没有注册。查询成功的手机号存放到true数组里。
for d in data:city = p.find(d)# print(city)if city != None:true.append(d)
8、打开一个txt文件,把true数组里的手机号写入txt文件里
tr = open(r"C:\移动" + str(i) + ".txt", 'w')for t in true:tr.write(str(t) + '\n')tr.close()print('前缀:' + str(i) + ' 已验证并写入txt文件')
9、完整代码如下
# coding:utf-8
import random
from phone import Phoneclass CellPhoneNumber:def __init__(self):# 定义移动手机号前缀self.yd = ['134', '135', '136', '137', '138', '139', '147', '150', '151', '152','157', '158', '159', '165', '178', '182', '183', '187', '188']def mobile(self, yds):array = [] # 定义空的数组,用于储存生成的手机号print('正在生成前缀是 ' + yds + ' 的手机号')for i in range(500000): # 循环50万次,获取手机号前三位以后的值# a-h是随机生成的手机号后8位变量a = random.randint(0, 9)b = random.randint(0, 9)c = random.randint(0, 9)d = random.randint(0, 9)e = random.randint(0, 9)f = random.randint(0, 9)g = random.randint(0, 9)h = random.randint(0, 9)# 合并所有的随机数data = str(yds) + str(a) + str(b) + str(c) + str(d) + str(e) + str(f) + str(g) + str(h)if data not in array: # array里没有已存在的随机手机号,则添加到array数组里array.append(data)# 打印生成进度if i == 124999:print('前缀:' + str(yds) + ' 已生成 25%')elif i == 249999:print('前缀:' + str(yds) + ' 已生成 50%')elif i == 375999:print('前缀:' + str(yds) + ' 已生成 75%')elif i == 499999:print('前缀:' + str(yds) + ' 已生成 100%')print('-----------------------------------------')return arraydef call_true(self):for i in self.yd: # 循环获取移动手机号前缀data = self.mobile(i) # 生成移动手机号# print(data)p = Phone() # Phone实例化true = [] # 定义空的数组,用于储存已验证的移动手机号for d in data: # 循环获取生成的移动手机号city = p.find(d) # 获取手机号的信息# print(city)if city != None: # 当前手机号信息可以查到,则添加到true数组里true.append(d)# 打开一个txt文件,把所有移动手机号储存到txt文本里,然后关闭文件tr = open(r"C:\移动" + str(i) + ".txt", 'w')for t in true:tr.write(str(t) + '\n')tr.close()print('前缀:' + str(i) + ' 已验证并写入txt文件')cell = CellPhoneNumber()
cell.call_true()