如何通过Python实现定时打卡小程序
程序员文章站
2022-06-23 12:43:27
目录结构:只需在自己的python项目下随便创建一个文件夹(下图中为:daka),然后将下载的chromedriver.exe、ask_for_leave.py、log.txt(此文件夹为空,保存运行...
目录结构:
只需在自己的python项目下随便创建一个文件夹(下图中为:daka),然后将下载的chromedriver.exe、ask_for_leave.py、log.txt(此文件夹为空,保存运行程序时的日志信息,直接在文件夹下创建一个名为log.txt的文件夹即可)。
chromedriver.exe
此文件是google浏览器的驱动文件,可在下载地址上选择与自己电脑上的google浏览器相同版本的驱动。
如何查看google浏览器版本
第一步:打开chrome浏览器
第二步:点击右上角三个点,选择“设置”
第三步:点击“关于chrome”
第四步:得到chrome版本号
ask_for_leave.py(只需修改标注修改的两个地方)
from selenium import webdriver from time import sleep from selenium.webdriver.common.keys import keys import datetime from selenium.webdriver.support.wait import webdriverwait from selenium.webdriver.support import expected_conditions as ec from selenium.webdriver.common.by import by from selenium.webdriver.support.select import select from selenium.webdriver.chrome.options import options def qinjia(browser,url): browser.get(url) sleep(1) browser.implicitly_wait(3) webdriverwait(browser,5).until(ec.presence_of_all_elements_located((by.id,"user_main"))) user_main_div=browser.find_element_by_id("user_main") username_input=user_main_div.find_element_by_id("txtid") #用户名 password_input=user_main_div.find_element_by_id("txtmm") #密码 login_btn=user_main_div.find_element_by_id("ibtnenter") #登录按钮 # 修改1:此处的账号和密码 username_input.send_keys("==================账号===================") password_input.send_keys("==================密码===================") login_btn.click() sleep(1) browser.implicitly_wait(3) webdriverwait(browser, 5).until(ec.presence_of_all_elements_located((by.class_name, "tabthinm"))) table_tag=browser.find_element_by_class_name("tabthinm") href_body=table_tag.find_elements_by_tag_name("tbody")[2] href=href_body.find_elements_by_tag_name("tr")[1].find_element_by_tag_name("a").get_attribute("href") browser.get(href) table_wjta=browser.find_element_by_id("wjta") div_gerenjiankang=table_wjta.find_elements_by_class_name("dvo")[0] #个人健康 div_shenqing=table_wjta.find_elements_by_class_name("dvo")[1] #申请进入 # 个人健康 selects_tag=div_gerenjiankang.find_elements_by_tag_name("select") work_station_select=selects_tag[2] health_station_select=selects_tag[3] live_station_select=selects_tag[4] family_station_select=selects_tag[5] select(work_station_select).select_by_value("1") select(health_station_select).select_by_value("1") select(live_station_select).select_by_value("1") select(family_station_select).select_by_value("1") #申请进入 select_shenqin_time_tags=div_shenqing.find_elements_by_tag_name("select") input_shenqin_reaseons_tags=div_shenqing.find_elements_by_tag_name("input") target_place_input=input_shenqin_reaseons_tags[0] reason_input=input_shenqin_reaseons_tags[1] # 修改2:成此处的申请目的地和事由 target_place_input.send_keys("=====================申请目的========================") reason_input.send_keys("==========================事由===============================") select(select_shenqin_time_tags[0]).select_by_value("1") select(select_shenqin_time_tags[1]).select_by_value("06") select(select_shenqin_time_tags[2]).select_by_value("3") select(select_shenqin_time_tags[3]).select_by_value("23") submit_input=browser.find_element_by_tag_name("input") submit_input.click() def log(message): curent_time = datetime.datetime.now() print(curent_time) f = open("log.txt", "a+", encoding="utf-8") f.write(str(curent_time) + ": "+message+"\n") f.close() def headlesschrome(): chrome_driver = r"chromedriver.exe" chrome_options=options() chrome_options.add_argument("--headless") chrome_options.add_argument("--disable-gpu") browser=webdriver.chrome(options=chrome_options, executable_path=chrome_driver) return browser if __name__ == '__main__': url="http://login.cuit.edu.cn/login/xlogin/login.asp" browser=headlesschrome() try: qinjia(browser,url) log("成功") except: log("失败") browser.quit()
log.txt
直接创建一个空的log.txt文件。
创建完毕之后,run一下ask_for_leave.py文件,即可运行一次。
到此这篇关于如何通过python实现定时打卡小程序的文章就介绍到这了,更多相关python 定时打卡小程序内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!