python 打卡程序_如何用python实现腾讯文档自动打卡并定时执行
最近学了些Web,了解了一些selenum包内函数使用,就写了下自动健康打卡,并用windows任务计划程序定时执行,健康打卡这个针对特定网站,所以对于通用化使用倒没有太大用处,但关于腾讯文档如何填写,因为定位不了表格就没得想法。。然后和同伴讨论了下,一开始采用的是先填写,再查找并替换,即先填写一些无关信息,比如名字简写,然后再通过点击编辑栏中的查找功能,在上面输入栏进行字符增减操作。
# 1.0版本,通过先填写内容,再替换实现
driver.find_element_by_xpath('//*[@id="editmenu"]/div/div/div[1]').click()
ActionChains(driver).key_down(Keys.CONTROL).key_down('f').perform() # 打开查找功能
time.sleep(3)
try:
driver.find_element_by_id('search-panel-input').send_keys("xxx") # 这里很魔性,一直没找出原因,同伴告诉我才知道如何修改
driver.find_element_by_id('search-panel-input').send_keys("xxx")# xxx是自己随便写的标识符
time.sleep(3)
driver.find_element_by_id('alloy-simple-text-editor').click()
for i in range(1,4): # 删去标识符
driver.find_element_by_id('alloy-simple-text-editor').send_keys(Keys.BACK_SPACE)
elmet = driver.find_element_by_id('alloy-simple-text-editor')
elmet.send_keys('ok') # 输入ok
time.sleep(1)
elmet.send_keys(Keys.ENTER)
print("已完成打卡!!!")
except:
print("出现某些异常!")
上面这个可以针对大多数填写情况,但这种过于繁琐。
一开始也注意到了域名的特殊性,即如下所示,打开腾讯文档,我们会发现,每次点击一个表格,域名后面的&c=xx 会更改,但不知道如何利用。
后面经同伴提醒后面的A0A0代表页数就恍然大悟,其实原先的思路绕了一个大圈去定位表格,没想到表格信息就已经存在访问的域名中,然后就想直接通过datetime获取当前day,然后根据腾讯文档表格中的日期获取列号,这里注意下,程序中对应的是如下图所示的表格,因为这里A对应的是空,所以得+1。
代码如下所示
# -*- coding: utf-8 -*-
"""
Created on Sun Apr 5 11:14:09 2020
@author: 虫二
"""
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys
import time
import datetime
# 填写腾讯文档
def visit_txt():
data = datetime.date.today()# 获取当前时间
now = data.day
# 获取行列式得根据实际需求修改
start = 2 # 根据第一列时间,需要修改
c = chr(now-start+1+65) # 获取列号, 65即是'A'
h = 8# 行号,即你要填写对应的行号
print(c)
url = "http:... c=" + c + str(h) +"A0A0" # 需要修改
driver = webdriver.Chrome("chromedriver.exe")
driver.get(url)
driver.implicitly_wait(10)
elmet = driver.find_element_by_class_name("unlogin-container")
elmet.click()
driver.implicitly_wait(10)
# 得提前登录qq,因为这里用了快捷登录接口
driver.switch_to.frame("login_frame")
elmet = driver.find_element_by_id("img_out_qq号")# 需要修改
elmet.click()
# 转换frame
driver.switch_to.parent_frame()
time.sleep(5)
try:
elmet = driver.find_element_by_id('alloy-simple-text-editor')
elmet.click()
elmet.send_keys('xxx') # 输入xxx,即你想输入的字符
time.sleep(1)
elmet.send_keys(Keys.ENTER)
time.sleep(3)
print("今天已成功打卡!!!")
except:
print("出现某些异常,请检查!!!")
if __name__ == "__main__" :
visit_txt()
任务计划程序
Window有个任务计划程序功能,还是很有用的,可以定时执行程序。
打开后点击创建,然后继续下一步设置名称,触发器…
需要注意的是下面这部分,第一个程序和脚本就找到你配置好环境中的python.exe,比如D:\Anaconda3\python.exe,参数就填写你要运行的程序,起始地址可以填写python.exe父目录,比如D:\Anaconda3
题外话
这次有同伴的帮助,爬出了不少坑,这过程中也学到了挺多东西,也发现了解的确实很少,还得继续去了解相关内容.
另:运行程序需配置python环境,安装selenium等相关包,并安装chrome.exe,这个配置过程可能会有点麻烦,但还是挺有意思的,建议用anaconda3环境,比较容易上手和管理库,安装教程其他博客都写的很详细。
关于anaconda3遇到了一个坑,就是Anaconda3环境中有两个python.exe脚本,需要注意的是它们的目录不同,例如在D:\Anaconda3目录下的是用conda管理库的,就是平时用conda install xxx,下载的所在的环境。
但在D:\Anaconda3\envs\temp.py\python.exe,则是基于pip管理库的,这个是基本的python,所以很多库都没有。
所以在配置Pycharm和VScode时需要注意这个脚本路径。
python 打卡程序_如何用python实现腾讯文档自动打卡并定时执行相关推荐
- python实现自动打卡_python实现腾讯文档自动打卡教程
明明365天都不得不待在家里面,居然还要天天去腾讯文档打卡,烦死人了. 天天都填一样的内容,重复无意义的事情,时间就是金钱,浪费人时间约等于谋财害命呀. 所以参考了网络上的代码,并做了改进,用pyt ...
- 自动打卡python脚本_python实现腾讯文档自动打卡教程
明明365天都不得不待在家里面,居然还要天天去腾讯文档打卡,烦死人了. 天天都填一样的内容,重复无意义的事情,时间就是金钱,浪费人时间约等于谋财害命呀. 所以参考了网络上的代码,并做了改进,用pyt ...
- 利用python写时钟程序_如何用python编写一个番茄钟程序
今天,我们尝试用python来编写一个简单的PC端番茄钟,需要实现的功能如下:启动时"滴"一声并询问:"休息时间结束!是否开始一个新的番茄钟?" 如果用户点击& ...
- 如何制作python检查小软件_如何用Python制作整蛊小程序
原标题:如何用Python制作整蛊小程序 下面的整蛊程序,千万不要发代码,否则就实现不了你整蛊的目的了.完成后一定要打包成一个exe程序,再发给朋友使用 . 1. 使用 pip install pyi ...
- python编程代码画画_如何用python编写一个绘制马赛克图像的自写程序
Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 这篇教程将会展示如何用python的图形化包"Pygame"和基础的文件I/O来创建一 ...
- python 打卡程序_如何利用Python实现自动打卡签到
需求描述 我们需要登录考勤系统(网页端,非手机端)进行签到,如果不想每天都早早起来打卡签到,就可以通过写程序实现这一功能. 业务梳理 通过长时间的早起打卡签到发现规律,我每天只是不停的点击,签到,都是 ...
- python如何运行py程序_如何用Python汇款:Web3.py教程
Python开发人员对于以太坊和区块链库的技术练习. 警告:下面的教程包含这些元素:显式加密.点对点金融服务以及可能的违规行为.这些例子仅仅是为了说明Python区块链的强大功能和便捷性. 嗨,Pyt ...
- python 代码转程序_如何用pyinstaller把自己编写的python源代码转换成可执行程序?...
昨天慢步熬夜写了一篇干货满满的文章,不知道什么原因,文章并未被推荐. 今天再来换个方式写一次. 把自己编写的python源代码转换成可执行程序 笔者继续用自编的<货币兑换程序3.0>为例. ...
- python 矩阵运算 for循环_如何用 Python 科学计算中的矩阵替代循环
展开全部 因为在Mathematica中使用循环确实是低效的.32313133353236313431303231363533e78988e69d8331333361313961..... 深层次的原 ...
最新文章
- CVPR 2020 | 元学习人脸识别框架详解
- 【408预推免复习】计算机网络(谢希仁第七版)第五章——运输层
- linux deb文件安装_如何在 Ubuntu 上安装 VirtualBox | Linux 中国
- 按下企业自播“快车键”
- python打包exe 之打包sklearn模型中的各种坑及其解决方法。
- 干货|机器学习零基础?不要怕,吴恩达机器学习课程笔记2-多元线性回归
- 设计模式(十一):从文Finder中认识组合模式(Composite Pattern)
- 计算机打印中 进纸盘2,软件、计算机和打印机接口问题-HP.PDF
- js 表单设计器_准备迎接Vue3,使用Vue Composition API生成干净可扩展的表单
- 为 iOS 6 量身打造 Apps
- linux:账号管理
- 频域采样与恢复matlab实验,实验二 时域采样与频域采样及MATLAB程序
- hbuilder阻止返回退出的另一种方式
- python中find函数的使用方法_详解Python中find()方法的使用
- uniapp---app端上传证件(身份证/银行卡)照片后转base64发送给后台功能实现
- 如何查看某台计算机的IP地址 物理地址,显示ip:如何查看电脑ip地址和物理地址(地址)? _ 惠州SEO...
- 向量点乘(内积)和叉乘(外积、向量积)概念及几何意义解读(经典)
- HMDB: a large human motion database人类动作视频数据集介绍及百度云下载链接分享
- 单片机交通灯灯c语言程序,关于LED模拟交通灯单片机C语言程序设计 - 全文
- UVA 12663 第九届省赛 高桥与低桥 线段树
热门文章
- JAVA中基本类型Boolean占几个字节
- SpringBoot项目@Email不起作用
- 各纬度气候分布图_地理:世界各种气候类型分布图(高清版)汇总!以及解答分析哦~...
- mongodb mysql 写_MySQL和MongoDB语句的写法对照
- php伪静态后301,动态地址rewrite伪静态,然后301跳转到伪静态时死
- Java隐含对象实验报告,JSP隐含对象response实现文件下载
- Android DDMS的打开以及查看手机页面布局层次
- php输出12个月,php获取12个月内的开始时间和结束时间
- 检索有关计算机系统功能设计方面的文献,文献检索系统
- 每个java小应用程序都得继承,JAVA复习题3