项目描述:
给一个用户名文件,从文件中读取所有用户名,然后判断用户名是否能够注册163邮箱,最后将是否可用输出到文件。
解决思路:
163邮箱在检测用户名是否可用时,会发起一个get请求到服务器,返回一个字符串,字符串中包括此用户名可以注册哪几个后缀的邮箱。
模拟get请求的URL,解析返回字符串,判断是否可以注册163邮箱。
import requests
NAMEFILE = 'userName.csv'
OUTFILE = 'result.csv'
def check_result(username):
Headers = {
"User - Agent": "Mozilla / 5.0(Windows NT 10.0;Win64;x64) AppleWebKit / 537.36(KHTML, likeGecko) Chrome / 79.0.3945.79Safari / 537.36"
}
respons = requests.get(
'https://reg.mail.163.com/unireg/call.do?cmd=urs.checkName&name={}&jsessionid=6751485744350'.format(username),
headers=Headers)
if '"163.com":1' in respons.text:
return True
else:
return False
def read_csv():
nameList = []
with open(NAMEFILE,'r') as f:
line = f.readline()
while line:
namelist = line.split(',')
for name in namelist:
if name != '':
nameList.append(name)
line = f.readline()
return nameList
def write_csv(namelist):
with open(OUTFILE,'w') as f:
for name in namelist:
if check_result(name):
f.write('{},True\n'.format(name))
else:
f.write('{},False\n'.format(name))
def main():
nameList = read_csv()
write_csv(nameList)
if __name__ == '__main__':
main()