首頁 > 軟體

如何通過Python實現定時打卡小程式

2021-11-25 19:01:42

目錄結構:

只需在自己的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 定時打卡小程式內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com