发布于 

python网页自动化 - Matlab账号注册

代码


from DrissionPage import WebPage
import time
xidian_url = ''

def login_xidian(username, password):
"""
登录西电邮箱
"""
global xidian_url
# 创建页面对象,初始d模式
page = WebPage('d')
# 跳转到登录页面
page.get('https://mail.stu.xidian.edu.cn/')
page.wait.load_start() # 等待页面进入加载状态
# 定位到账号文本框并输入账号
page.ele('#uid').input(username)
# 定位到密码文本框并输入密码
page.ele('#fakePassword').input(password)
page.ele('t:button@tx():登录').click()
page.wait.load_start() # 等待页面进入加载状态
xidian_url = page.url
return page

def set_alias(page, alias):
"""
设置邮箱别名
"""
global xidian_url
page.get(xidian_url+'#setting.account.alias')
page.wait.load_start() # 等待页面进入加载状态
page.ele('@name=aliasId').set.prop('value', alias)
page.ele('t:button@tx():保存更改').click()
page.wait.load_start() # 等待页面进入加载状态
return page

def register_mathworks(page, alias):
"""
注册MathWorks账号
"""
page.get('https://ww2.mathworks.cn/mwaccount/register?uri=https%3A%2F%2Fww2.mathworks.cn%2Flogin%2Fmwa-sso%2Fcheck%3Furi%3Dhttps%253A%252F%252Fww2.mathworks.cn%252Fcampaigns%252Foffers%252Fmatlab-toolbox-price-request.html%253Fs_eid%253Dppc_14449%2526s_kwcid%253DAL%25218664%252188%252166187352877%2521%2521114505529130%2526ef_id%253DY2XPywAAAFq-gV38%253A20221105025155%253As&locale=zh_CN')
page.wait.load_start() # 等待页面进入加载状态
page.ele('#registration_email_address').input(alias + '@stu.xidian.edu.cn')
page.ele('#registration_potential_use').set.prop('value', 'Home')
page.ele('#registration_terms_of_service_1').click()
page.ele('#update_button').click()
page.wait.load_start() # 等待页面进入加载状态
time.sleep(10) # 添加延迟
return page

def verify_email(page):
"""
验证邮箱
"""
global xidian_url
page.get(xidian_url+'#mail.list')
page.wait.load_start() # 等待页面进入加载状态
time.sleep(10) # 添加延迟
page.ele('tag:span@tx()^验证电子邮件地址').click()
page.wait.load_start() # 等待页面进入加载状态
# href = re.findall(r"href=['\"](.*?)['\"]", str(page.ele('tag:a@tx()=验证电子邮件')))[0]
page.get(page.ele('tag:a@tx()=验证电子邮件').link)
page.wait.load_start() # 等待页面进入加载状态
return page

def complete_profile(page, username, password, last_name, first_name):
"""
注册完善个人信息
"""
page.ele('#profile_last_name').input(last_name)
page.ele('#profile_first_name').input(first_name)
page.ele('#profile_password').input(password)
page.ele('#profile_password_confirmation').input(password)
page.ele('#profile_latin_last_name').input(last_name)
page.ele('#profile_latin_first_name').input(first_name)
page.ele('#profile_serv_agree_accepted').click()
page.ele('#update_button').click()
page.wait.load_start() # 等待页面进入加载状态
time.sleep(10) # 添加延迟
return page

def register_matlab(username, password, alias, profile_password, last_name, first_name):
"""
注册MathWorks账号
"""
page = login_xidian(username, password)
page = set_alias(page, alias)
page = register_mathworks(page, alias)
page = verify_email(page)
page = complete_profile(page, username, profile_password, last_name, first_name)
page.quit()

register_matlab('邮箱账号', '邮箱密码', '别名', '账号密码', "wei", "mei")