我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何通过Python实现定时打卡小程序

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何通过Python实现定时打卡小程序

目录结构:

只需在自己的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 定时打卡小程序内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何通过Python实现定时打卡小程序

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么通过Python实现定时打卡小程序

这篇文章主要为大家展示了“怎么通过Python实现定时打卡小程序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么通过Python实现定时打卡小程序”这篇文章吧。只需在自己的python项目下随
2023-06-21

python如何实现自动打卡小程序

这篇文章主要介绍了python如何实现自动打卡小程序,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下from selenium import webdriverfr
2023-06-14

JavaScript怎么实现微信小程序打卡时钟

今天小编给大家分享一下JavaScript怎么实现微信小程序打卡时钟的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、项目展
2023-06-30

python通过线程实现定时器timer

下面介绍以threading模块来实现定时器的方法。 使用前先做一个简单试验: import threadingdef sayhello():        print "hello world"        global t      
2023-01-31

小程序中如何实现即时通讯功能

在小程序中实现即时通讯功能通常需要使用到实时通讯的服务接口和技术。下面是一个简单的步骤来实现即时通讯功能:选择合适的即时通讯服务提供商,比如融云、环信等,并注册账号获取相关的API密钥和App ID等信息。在小程序的后端服务器上集成即时通讯
小程序中如何实现即时通讯功能
2024-04-17

C#通过rabbitmq如何实现定时任务

小编给大家分享一下C#通过rabbitmq如何实现定时任务,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!环境准备需要在MQ中进行安装插件 地址链接插件介绍地址:h
2023-06-15

如何通过PHP实现微信小程序的高级功能?

如何通过PHP实现微信小程序的高级功能?随着微信小程序的快速发展,越来越多的开发者开始关注如何通过PHP实现微信小程序的高级功能。PHP是一种非常强大的后端编程语言,能够与微信小程序进行交互,实现一些复杂的功能和业务逻辑。在本文中,我将分享
2023-10-27

微信小程序如何使用WebSocket实现即时通讯

使用WebSocket实现即时通讯功能,可以让用户实时收发消息,并保持连接状态。在微信小程序中,可以通过wx.connectSocket()方法创建WebSocket连接,并设置相关事件监听器来处理收发消息的逻辑。以下是基本步骤:创建Web
微信小程序如何使用WebSocket实现即时通讯
2024-04-03

小程序自定义tabbar如何实现

小编给大家分享一下小程序自定义tabbar如何实现,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!tabBar如果小程序是一个多 tab 应用(客户端窗口的底部或顶
2023-06-26

MySQL中如何通过循环实现自定义排序

在MySQL中,可以通过循环实现自定义排序的方法是使用用户定义变量(user-defined variables)来实现。以下是一个简单的示例,假设有一个表格students包含学生的姓名和分数,现在我们想按照分数降序排序,但要求相同分数的
MySQL中如何通过循环实现自定义排序
2024-04-30

Python如何通过队列实现进程间通信

本篇内容主要讲解“Python如何通过队列实现进程间通信”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python如何通过队列实现进程间通信”吧!一、前言在多进程中,每个进程之间是什么关系呢?其
2023-07-02

微信小程序如何实现位置闹铃的定时器

这篇文章主要为大家展示了“微信小程序如何实现位置闹铃的定时器”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序如何实现位置闹铃的定时器”这篇文章吧。需求设定了监控点位置以后就需要按照一定的
2023-06-19

微信小程序如何实现卡片层叠滑动

本篇内容主要讲解“微信小程序如何实现卡片层叠滑动”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“微信小程序如何实现卡片层叠滑动”吧!实现效果:1.左右滑动时,向相应方向移动一个卡片位置;2.点击某
2023-06-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录