失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python实现自动打卡签到

Python实现自动打卡签到

时间:2024-02-18 19:23:17

相关推荐

Python实现自动打卡签到

# 需要准备部分:

# 1.安装python3,并用pip3下载selenium包

# 2.下载chrome浏览器,并安装浏览器驱动,添加到环境变量,参考(/qq_40270754/article/details/100982759)

import timefrom selenium import webdriver # selenium自动浏览器from selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECfrom mon.by import Byimport yagmail #引入yagmail# 基本个人信息url = 'xxx' # 登录的网站User = 'xxxxxxxx' # 这里是需要登陆的邮件账号passwords = 'xxxxxxxx' # 这里是需要登陆的邮件密码chrome_driver = r"C:\Users\Administrator\AppData\Local\google\Chrome\Application\chromedriver.exe" # 指定浏览器驱动driver = webdriver.Chrome(executable_path=chrome_driver)wait = WebDriverWait(driver, 5) # 每次都进行显示等待,设立最大等待时间为5s,5s内不断检验如果为True则通过# 填写邮箱信息user_email='xxxxxx@'#发送的邮件方 我这里用qq号password_email='xxxxxxxx'#邮件密码不是qq密码 而是授权码 参考(https://service./cgi-bin/help?subtype=1&&id=28&&no=1001256)email_reciver='xxxxxxx@'#发送失败接收的邮件方,我填的是学校邮箱# 判断是否出现弹出框def alert_is_present(driver):try:alert = driver.switch_to.alertalert.textreturn alertexcept:return False# 发送邮件内容def send_message(emailtext):server = yagmail.SMTP(user_email, password_email, host='', port=25, smtp_starttls=True, smtp_ssl=False)server.send(email_reciver, 'IMPORTANT', emailtext)# 启动浏览器def get_web(driver):driver.get(url)# 等一下,等数据全部加载出来了再点击xpath_denglu = '//*[@id="form1"]'wait.until(EC.presence_of_element_located((By.XPATH, xpath_denglu))) # 定位到点击登录的那个地方driver.find_element_by_id("username").send_keys(User) # 定位账号框并输入密码driver.find_element_by_id("password").send_keys(passwords) # 定位密码框并输入密码selector = driver.find_element_by_id("user_lb")selector.find_element_by_xpath("//option[@value='教职工']").click()denglu = "/html/body/div[@class='container']/div[@class='content']/div[@class='main']/form[@id='form1']/table[@class='loginTable']/tfoot/tr/td[2]/input[@id='loginbtn']"driver.find_element_by_xpath(denglu).click() # 点击登录xpath_denglu = '//*[@id="footer"]'wait.until(EC.presence_of_element_located((By.XPATH, xpath_denglu))) # 等待页面# 点击健康登记dengji = "/html/body/div[@id='wrap']/div[@id='main']/div[@id='m_ext']/div[@id='main2']/div[@id='content']/dl[6]/dd[1]/h1"driver.find_element_by_xpath(dengji).click() # 点击健康登记# 如果有弹出框 点击确定if alert_is_present(driver):driver.switch_to.alert.accept()xpath_denglu = '//*[@id="footer"]'wait.until(EC.presence_of_element_located((By.XPATH, xpath_denglu))) # 定位到点击登录的那个地方# 点击确认queren = "/html/body/div[@id='wrap']/div[@id='main']/div[@id='m_ext']/div[@id='form']/form[@id='form1']/div[@id='submit']/input[1]"driver.find_element_by_xpath(queren).click() # 点击健康登记# 5s后关闭窗口time.sleep(5)driver.close()while True:time_now = time.strftime("%H:%M:%S", time.localtime())if time_now == "07:00:00": # 此处设置每天定时的时间try:final_content = get_web(driver)info = time_now+ "已打卡"print(info)except:# 打卡失败,向邮箱发送消息,告知手动打卡text_info = time_now+"打卡失败,请手动打卡"send_message(text_info)print(text_info)

如果觉得《Python实现自动打卡签到》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。