明明365天都不得不待在家里面,居然还要天天去腾讯文档打卡,烦死人了。天天都填一样的内容,索性nm的一次性把表给光得了。
但这样又容易被辅导员说犯错误。
不打卡又得被李楚权无能狂怒。
但还好,我们是软件工程第一代目,在海归火哥的指导下我们已经对Python有了一定程度的了解,根据我们所学的知识与经验,我们完全可以一劳永逸的解决这个问题,避免李楚权在当渣男的同时被辅导员嘴臭后跑到群里气急败坏。
【教学开始】
首先,我们需要到官网下载一个pycharm,下载社区版本就行。
链接:
https://www.jetbrains.com/pycharm/download/#section=windows
然后再去python的官网
链接:
https://www.python.org/downloads/release/python-383/
下载python的最新版本,配置好环境变量(配置环境变量这种常识应该无须赘述了8),环境变量的地址就copy一下你的Python安装在的目录就行。
注意:我红框圈起了两个,这两个都要添加,不然待会无法使用pip安装所需要的插件。
安装玩这两玩意后,打开控制台,输入【python】和【pip】验证一下安装是否成功,环境变量配置是否顺利。如果如下图所示,那就是成功了。
成功后,我们打开命令行,输入pip install selenium
以及:pip install openpyxl
(因为我已经安装过了所以会有点不一样,你们安装是会有进度条的)
【重点】然后,我们还需要下载个chromedriver,最好下载最新版本的8.3。
如果运行中还是出错,就去谷歌浏览器设置那里,左边的关于chrome看你的浏览器的版本是什么,如果不是最新版本会自动更新的。
链接:
https://npm.taobao.org/mirrors/chromedriver/
至此,所有的准备工作都完成了。
成功以后我们就打开pycharm,新建一个项目。
在左边的导航栏里面新建一个Python文件。
然后我们进入冥想,
仔细回忆起和火哥一起学习的那段青葱岁月,在课堂所学的点点滴滴,就能很轻松的写出以下代码。
import timeimport datetimefrom selenium import webdriverfrom selenium.webdriver.common.keys import Keysfrom openpyxl import Workbookfrom openpyxl.utils import get_column_letterfrom selenium.webdriver.support.ui import Selectfrom selenium.webdriver.common.action_chains import ActionChains#先获得时间today_time=str(datetime.datetime.now().year)+"/"+str(datetime.datetime.now().month)+"/"+str(datetime.datetime.now().day)#接下来写脚本自动登录网页driver = webdriver.Chrome()driver.get("https://docs.qq.com/sheet/DWHRzbXRrUFJWbXpW?tab=aw9x7g&c=BX23BN0A0")#将健康表的地址copy过来就行。time.sleep(1)driver.find_element_by_class_name('unlogin-container').click()#点击登入按钮time.sleep(1)driver.switch_to.frame(driver.find_element_by_id('login_frame'))driver.find_element_by_class_name('img_out_focus').click()#登入账号,用快速登入的功能,前提,已经电脑qq登入了driver.switch_to.parent_frame()time.sleep(2)driver.find_element_by_xpath('//*[@id="canvasContainer"]/div[1]/div[2]').click()time.sleep(0.5)ActionChains(driver).key_down(Keys.CONTROL).key_down('f').perform()time.sleep(2)driver.find_element_by_id('search-panel-input').send_keys(str(today_time))time.sleep(2)driver.find_element_by_id('search-panel-input').send_keys(str(today_time))time.sleep(2)driver.find_element_by_class_name('dui-button').click()time.sleep(1)#####################################################################################对以下地方进行修改for i in range(0, 21):#这里的循环的次数,修改为自己的信息所在的行号 ActionChains(driver).key_down(Keys.ENTER).perform()#以下的三个信息填写为自己的信息即可driver.find_element_by_id('alloy-simple-text-editor').click()driver.find_element_by_id('alloy-simple-text-editor').send_keys("广东省茂名市")ActionChains(driver).key_down(Keys.TAB).perform()driver.find_element_by_id('alloy-simple-text-editor').click()driver.find_element_by_id('alloy-simple-text-editor').send_keys("健康")ActionChains(driver).key_down(Keys.TAB).perform()driver.find_element_by_id('alloy-simple-text-editor').click()driver.find_element_by_id('alloy-simple-text-editor').send_keys("否")driver.find_element_by_id('alloy-simple-text-editor').send_keys(Keys.ENTER)time.sleep(1)
回忆不起来也没关系,抄就完了!
然后,我们只需要对循环次数和三个信息进行修改,修改为自己的信息即可,循环次数就是自己所在的学号+2,实在不行可以+1或-1试试。
如果对自己的电脑没有自信,中间的time.sleep()里面的参数可以改大一点,因为selenium常常会因为电脑网速或者硬件不行,而在页面还没加载出来就进行下一步,会容易出错。
记得电脑挂着qq,否则自动快捷登录无效。
改完后尝试性的运行一下,浏览器会自动打开,自动登录腾讯文档,然后自动修改表格,你就盯着看有没有改对地方,如果不小心把别人的给改了记得改回去。
如果以上全部都没有问题,就可以进行最后一步了。
搜索管理工具,打开。
点击“任务计划程序”。
建立基本工作
这里随意
选择每天,然后选择自己想要运行的时间。
选择启动程序后,选择自己刚刚的python文件所在的位置,完成。
因为是定了今天,我已经写了,脚本到时间运行后double了我的信息,可见是成功了的,而如果命令行报错,那就要检查一下是不是网络不行或者硬件不行,而sleep又太短导致selenium出错了。