python脚本代码
"""
某网站经常注销账号,开发一键注册脚本,写的很烂,有很多可以优化的地方
"""from time import sleepfrom selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC, wait
from email.parser import Parser
import poplibemail = "xxxx@qq.com"
password = "pop3开启所提供的授权码"
pop3_server = "pop.qq.com"def get_email_code():# 连接到POP3服务器:# server = poplib.POP3(pop3_server)# qq需要使用sslserver = poplib.POP3_SSL(pop3_server)# 身份认证:server.user(email)server.pass_(password)# stat()返回邮件数量和占用空间:# print('Messages: %s. Size: %s' % server.stat())# list()返回所有邮件的编号:resp, mails, octets = server.list()# 可以查看返回的列表类似[b'1 82923', b'2 2184', ...]# print(mails)# 获取最新一封邮件, 获取验证码index = len(mails)resp, lines, octets = server.retr(index)msg_content = b'\r\n'.join(lines).decode('utf-8')# 解析出邮件:msg = Parser().parsestr(msg_content)# self.print_info(msg)server.quit()# 正则匹配获取验证码return re.search('(\d{6})</span>',msg.as_string(),re.S).group(1)#通过selenium模拟完成注册页面的输入和点击操作
def open():driver = webdriver.Chrome()driver.get("https://freemycloud.xyz/auth/register")wait = WebDriverWait(driver, 10)input_name = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#name")))input_email = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#email")))# 下拉框Select(driver.find_element_by_id("email_postfix")).select_by_value("@qq.com")clickforcode = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#email_verify")))input_passwd = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#passwd")))input_repasswd = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#repasswd")))submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#register-button")))input_name.send_keys('asfdsafda')input_email.send_keys('2084433059')input_passwd.send_keys('asfdsafda')input_repasswd.send_keys('asfdsafda')clickforcode.click()#获取验证码sleep(30)#等待邮件的到达input_email_code = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#email_code")))input_email_code.send_keys(get_email_code())submit.click()#注册sleep(100)if __name__ == '__main__':open()
网站注册页面