程序主要就两块儿:
sign_up()功能:
- 设置临时邮箱
- 填写注册信息
- 等待验证
- 填写验证码
- 完成注册
main()功能:
- 注册名称设置
- selenium参数设置
- 调用sign_up()
- 注册后的账号密码写入文件
以下代码仅供参考讨论,请勿用于商业或者非法用途,否则,一切后果请自负!!
# coding = utf-8
# 以下代码仅供参考讨论,请勿用作其它非法用途
# [url=http://www.52pojie.cn]www.52pojie.cn[/url]
# python 3.7
# @Author:iknew
from bs4 import BeautifulSoup as bs
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import selenium
import time
import csv
import random
from mock_useragent import UserAgent
‘’‘1. 设置临时邮箱
2. 填写注册信息
3. 等待验证
4. 填写验证码
5. 完成注册
’‘’
def sign_up(name,pwd):
global element
email = name + '@t.odmail.cn'
url = 'https://t.odmail.cn/'
code = ''
browser.get(url)
time.sleep(3)
try:
browser.implicitly_wait(15)
element = browser.find_element_by_id('customShortid')
except selenium.common.exceptions.NoSuchElementException:
print('网页加载不出来')
sign_up(name,pwd)
element.click()
browser.implicitly_wait(5)
browser.find_element_by_id('shortid').send_keys(name)
browser.implicitly_wait(5)
element.click()
print('email set up ...')
# browser.execute_script(js)
js = 'window.open("https://signup.microsoft.com/signup/index?sku=faculty");'
browser.execute_script(js)
windows = browser.window_handles
browser.switch_to.window(windows[1])
browser.implicitly_wait(30)
browser.find_element_by_id("StepsData_Email").send_keys(email)
browser.implicitly_wait(2)
browser.find_element_by_class_name('mpl-button-box-text').click()
browser.switch_to.window(windows[0])
print('waiting for verification code ...')
while code == '':
time.sleep(3)
browser.find_element_by_id('maillist')
r = browser.find_element_by_id('maillist').text
code = r[49:55]
print('Got the verification code:{}\n'.format(code))
browser.implicitly_wait(10)
#切换窗口到注册页面填写信息、验证码:
browser.switch_to.window(windows[1])
browser.implicitly_wait(20)
try:
element = browser.find_element_by_class_name('last-name')
element.send_keys('o')
except selenium.common.exceptions.ElementNotInteractableException: browser.quit()
browser.implicitly_wait(5)
browser.find_element_by_class_name('first-name').send_keys('o')
browser.implicitly_wait(5)
browser.find_element_by_id('Password').send_keys(pwd)
browser.implicitly_wait(5)
browser.find_element_by_id('RePassword').send_keys(pwd)
browser.implicitly_wait(5)
browser.find_element_by_id('SignupCode').send_keys(code)
browser.implicitly_wait(10)
browser.find_element_by_class_name('mpl-button-box-text').click()
print('注册的账号密码:{0},{1}, 验证码:{2}\n'.format(email,pwd,code))
try:
browser.implicitly_wait(20)
element = browser.find_element_by_class_name('ms-fcl-tp')
element.click()
except selenium.common.exceptions.StaleElementReferenceException:
browser.refresh()
return [email,pwd]
’‘’1. 注册名称设置2. selenium参数设置
3. 调用sign_up()
4. 注册后的账号密码写入文件
'''
def main():
global browser
n = 0
for i in range(1,1000): # 设置注册ID范围,程序中断需要手动修改起始位置...
name = '这里填你想要的名称'+str(i)
pwd = 'One.'+str(random.randint(1000,9990))
t = time.time()
agent = UserAgent.random_chrome
options = Options()
options.add_experimental_option("excludeSwitches", ["ignore-certificate-errors"])#避免一些无关紧要的报错
options.add_argument('--user-agent={}'.format(agent))
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')
options.add_argument('--start-maximized') #窗口最大化,感觉不太需要
options.add_argument('--window-size=1920,1080')#设置窗口大小
options.add_argument('--headless') # 后台运行,可注释掉查看自动注册流程
browser = webdriver.Chrome(chrome_options= options)
#调用sign_up函数注册
user = sign_up(name,pwd)
f = open('onedrive.csv','a',newline='')
writer = csv.writer(f)
f.seek(0,2)
writer.writerow(user)
f.close()
n += 1
print('Time now:{0}'.format(time.strftime("%Y%m%d %X", time.localtime())))
print('注册第 "{}"个用时:{:.2f} 秒'.format(n,time.time()-t),end='\n---------------------')
browser.quit()
if n % 20 == 0 :
print('休息10分钟,避免IP被封')
time.sleep(600)
if __name__ == "__main__":
main()
下载地址
[button color="info" icon="" url="https://ycb.cc/download/file?cid=489" type=""]本地下载[/button]