本次实验使用的是阿里云Centos7.7,从啥也没有的linux开始配置一个自动打卡脚本(为啥是啥也没有?因为之前那个服务器给我整坏了。与其修复还不如干脆重装省事 反正本来也没啥东西滑稽 )

pip安装selenium模块

pip3 install selenium

2. 安装chrome和chromedriver

chrome:

curl https://intoli.com/install-google-chrome.sh | bash

wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

sudo yum install ./google-chrome-stable_current_*.rpm

chrome测试:

google-chrome –version

chromedriver:

wget http://npm.taobao.org/mirrors/chromedriver/2.41/chromedriver_linux64.zip

将下载的文件解压,放在/usr/bin/chromedriver:

unzip chromedriver_linux64.zip -d /usr/bin/chromedriver

给予执行权限:

chmod +x /usr/bin/chromedriver

3.上述步骤安装成功与否的测试

创建文件命令:

vi test.py

测试代码:(创建文件以后按i进入insert模式,文件中输入以下)

from selenium import webdriver

代码运行:

python3 test.py

测试代码:

from selenium import webdriver

from selenium.webdriver.support.select import Select

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from configparser import ConfigParser

from pyrsistent._transformations import inc

# 只需修改下面三项即可 学号 密码 收件箱

url = "http://tjxx.lnu.edu.cn/"

movement = "/html/body/div[1]/form/div[3]/div[2]/label[1]"#有无移动

touch = "/html/body/div[1]/form/div[4]/div[2]/label[1]"#有无接触史

condition = "/html/body/div[1]/form/div[5]/div[2]/label[1]"#健康状况

quarantine = "/html/body/div[1]/form/div[6]/div[2]/label[1]"#是否隔离

inCollege = "/html/body/div[1]/form/div[7]/div[2]/label[1]"#是否在校

submit = "/html/body/div[1]/form/div[8]/a"#提交

check = "/html/body/div[3]/div[2]/div[2]/a[2]"#最后的确定按钮

# 模拟登陆打卡

def do_login(driver,userName, password):

# driver.maximize_window() 将窗口最大化

# 找到登录框 输入账号密码

driver.find_element_by_name('userid').send_keys(userName)

driver.find_element_by_name('userpwd').send_keys(password)

driver.find_element_by_id('formSubmitBtn').click()#点击登录

driver.find_element_by_xpath(movement).click()

driver.find_element_by_xpath(touch).click()

driver.find_element_by_xpath(condition).click()

driver.find_element_by_xpath(quarantine).click()

driver.find_element_by_xpath(inCollege).click()

driver.find_element_by_xpath(submit).click()#点击提交

time.sleep(2)

driver.find_element_by_xpath(check).click()#点击确定

time.sleep(1)

if __name__ == '__main__':

# 模拟浏览器打开网站

cf = ConfigParser()

cf.read("config.ini")

userName = cf.get("config", "userName")

password = cf.get("config", "password")

driver = webdriver.Chrome()

driver.get(url)

# 登录并打卡

do_login(driver,userName, password)

# sendMail(nowTime + "\n打卡成功!")

print("打卡结束")

time.sleep(1)

driver.quit()

4.接轨windows下的代码:

相比于上面这篇博客的代码,我们需要做一些修改以适配系统

更改驱动注册代码,改为:

driver = webdriver.Chrome(chrome_options=chrome_options)

在头部添加:

import time

from selenium.webdriver.chrome.options import Options

# guarantee our program can be in operation under command line

chrome_options = Options()

chrome_options.add_argument('--no-sandbox')

chrome_options.add_argument('--disable-dev-shm-usage')

chrome_options.add_argument('--headless')

chrome_options.add_argument('blink-settings=imagesEnabled=false')

chrome_options.add_argument('--disable-gpu')

另外我还添加了一个文件输入学号密码的操作,即在脚本同一路径下添加一个config.ini文件,文件内容为:

[config]

userName = 登陆用户名

password = 密码

当然用上文的写死在脚本里也是可以的。

完整代码:

# encoding: utf-8

import time

from selenium.webdriver.chrome.options import Options

from selenium import webdriver

from selenium.webdriver.support.select import Select

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from configparser import ConfigParser

from pyrsistent._transformations import inc

# guarantee our program can be in operation under command line

chrome_options = Options()

chrome_options.add_argument('--no-sandbox')

chrome_options.add_argument('--disable-dev-shm-usage')

chrome_options.add_argument('--headless')

chrome_options.add_argument('blink-settings=imagesEnabled=false')

chrome_options.add_argument('--disable-gpu')

# 只需修改下面三项即可 学号 密码 收件箱

url = "打卡网站"

# 每次需要填写的位置的XPath:xpath的获取见上一篇博文 “windows下的脚本实现详细教程”

movement = "/html/body/div[1]/form/div[3]/div[2]/label[1]"#有无移动

touch = "/html/body/div[1]/form/div[4]/div[2]/label[1]"#有无接触史

condition = "/html/body/div[1]/form/div[5]/div[2]/label[1]"#健康状况

quarantine = "/html/body/div[1]/form/div[6]/div[2]/label[1]"#是否隔离

inCollege = "/html/body/div[1]/form/div[7]/div[2]/label[1]"#是否在校

submit = "/html/body/div[1]/form/div[8]/a"#提交

check = "/html/body/div[3]/div[2]/div[2]/a[2]"#最后的确定按钮

# 模拟登陆打卡

def do_login(driver,userName, password):

# driver.maximize_window() 将窗口最大化

# 找到登录框 输入账号密码

driver.find_element_by_name('userid').send_keys(userName)

driver.find_element_by_name('userpwd').send_keys(password)

driver.find_element_by_id('formSubmitBtn').click()#点击登录

driver.find_element_by_xpath(movement).click()

driver.find_element_by_xpath(touch).click()

driver.find_element_by_xpath(condition).click()

driver.find_element_by_xpath(quarantine).click()

driver.find_element_by_xpath(inCollege).click()

driver.find_element_by_xpath(submit).click()#点击提交

time.sleep(2)

driver.find_element_by_xpath(check).click()#点击确定

time.sleep(1)

if __name__ == '__main__':

# 模拟浏览器打开网站

cf = ConfigParser()

cf.read("config.ini")

userName = cf.get("config", "userName")

password = cf.get("config", "password")

driver = webdriver.Chrome(chrome_options=chrome_options)# Optional argument, if not specified will search path.

driver.get(url)

# 登录并打卡

do_login(driver,userName, password)

# sendMail(nowTime + "\n打卡成功!")

print("打卡结束")

time.sleep(1)

driver.quit()

不知道什么原因会报警告。但是python3命令测试可以正常运行了。

添加到定时启动

首先我们获取一下需要定时启动的脚本test.py的绝对路径:

find / -name test.py

得到绝对路径:/programs/test.py

打开定时启动配置文件,第一次使用可能会新建一个文件。

crontab -e

简单介绍一下配置定时启动的文法:

举个例子,我希望我的test.py脚本每天15:20用python3启动,那么我需要输入:

20 15 * * * python3 /programs/test.py

每周二晚上9点执行test脚本:

0 21 * * 2 python3 /programs/test.py

ESC退出插入模式-》输入:wq以后回车保存退出。完成!

自动打卡python脚本_Centos7从零开始配置py每日自动打卡脚本相关推荐

  1. android打开cad卡顿,两万高配置电脑使用CAD非常卡顿怎么办

    本帖最后由 18332919183 于 2020-4-21 17:55 编辑 两万块钱买的笔记本,使用CAD任何版本都卡顿,百度方法调设置关闭动态输入关闭区域框选指示等等各种方法,都试了还是不行,任然 ...

  2. python闯关训练营怎么样3.0_【新升级】3周!0基础Python量化投资!闯关式学习打卡,解锁新技能!...

    2020年热度最高的编程语言是谁?Python! Python应用方向很多,包括数据分析.爬虫.开发.运维.自动化测试,不过Python+金融还有一个有趣的应用方向:量化投资. 非金融背景的同学要理解 ...

  3. python量化0基础培训_【点宽学院】3周!0基础Python量化投资!闯关式学习打卡,解锁新技能!(第4期)...

    为啥我敢说这门课程能帮你从 0 实现 量化投资入门? 01 规划学习路线 首先点宽学院,作为一个深耕金融科技的数字化实践平台,我想没有谁比点宽学院更了解初学者学习量化投资的各种难题了! 所以我们打造了 ...

  4. 企业微信自动打卡Python脚本

    企业微信是一个办公软件,提供了打卡功能.如果你想用 Python 脚本自动完成打卡,那么你需要做的事情是: 首先,你需要在企业微信中开启 API 权限.这样你就可以使用企业微信提供的 API 来操作打 ...

  5. 【实战项目记录1】编写一个传奇3法师自动练级的python脚本

    我基于pyautogui.tkinter以及几个标准库,结合面向对象的编程思路,从传奇3游戏的自动功能需求出发,研究了一个完整的法师练级打怪赚钱的小工具,给大家参考一下编程思路和一些实现想法. 闲来无 ...

  6. python测试开发教程 龙腾_龙腾源码网京东 有货自动下单,Python 脚本 你的口罩...

    本帖最后由 小朋友 于 2020-2-7 13:24 编辑 这个 githubcom/tychxn/jd-assistant 我写了个 Windows下的一键安装Python运行环境和安装依赖库的脚本 ...

  7. python脚本开头怎么写_浅谈Python脚本开头及导包注释自动添加方法

    浅谈Python脚本开头及导包注释自动添加方法 1.开头:#!/usr/bin/python和# -*- coding: utf-8 -*-的作用 – 指定 #!/usr/bin/python 是用来 ...

  8. 实现一个京东自动签到的python脚本

    下面是一个示例的京东自动签到的 Python 脚本: import requests import json# 首先你需要有京东账号并且登录 # 然后在浏览器中打开京东签到页面, 复制一下请求地址 u ...

  9. linux自动配置bond0脚本、bond0和bond1双链路脚本、批量配置bond脚本步骤

    文章目录 说明[必看] 双bond脚本 执行成功的界面如下 bond脚本内容 删除已配置的bond方法 遍历执行过程 说明 遍历脚本代码 执行查看效果 批量拷贝bond脚本代码 执行查看效果 批量执行 ...

  10. Python脚本实现云顶之弈自动挂机刷局数!这操作怎么说?

    前言 1.不使用外部硬件模块,仅使用Python库实现. 2.有些代码可以再优化,处理一些异常的情况. 我会在文章最后附上在win10下使用pyinstaller打包好的可执行程序.如果和我的电脑屏幕 ...

最新文章

  1. 常见开源协议!【科普】
  2. android 文字路径,Android自定义控件:路径及文字
  3. linux之lsof和netstat判断端口(port)被哪些应用占用
  4. 基于JAVA+SpringMVC+Mybatis+MYSQL的网上医院预约挂号系统
  5. 用 JAVA 编写一个 M3U8 视频下载器
  6. iOS 开发技巧(一)
  7. android db 代码查看工具,Android 真机调试查看db数据库文件
  8. 联想服务器BLOS里面的具体信息,联想笔记本bios中英文对照表详细图文分析
  9. List1_Excise
  10. 【概率论】范畴分布 Categorical / Multinoulli Distribution
  11. ClickHouse表引擎到底怎么选
  12. 6.计算机系统能力创新实践,计算机考核要重实践能力、培养创新精神
  13. 网络视频血战:弱者渔利
  14. 【VS】InstallerProjects.vsix下载 Microsoft Visual Studio Installer Projects
  15. 天龙八部与珍珑(文/《北京青年报》记者 郭婷婷)
  16. iPhone 电池的正确激活与使用方式
  17. crypto-js 前端DES加密/解密、生成秘钥 详解
  18. 编程程题库之软件测试8大常见数据库面试题
  19. 【MATLAB】MATLAB实现 之 OFDM(正交频分复用技术)
  20. F. Function!

热门文章

  1. 会话语义角色标注:Conversational Semantic Role Labeling
  2. 虾米播播音乐墙html,虾米音乐外链,免费外链音乐,博客免费播放器
  3. 自己动手实现抖音高清无水印视频下载工具(1)
  4. ibm入职测试题太难了_IBM面试的IQ测试题
  5. ERROR: pip‘s dependency resolver does not currently take into account all the packages that are ....
  6. finecms aip.php漏洞,通杀FineCMS5.0.8及版本以下getshell的漏洞
  7. Win10好用吗?简单几步改造让Windows 10更好用
  8. 阶段性PJ某软件APK
  9. Crowd Counting P2PNet 复现
  10. 楚门的世界/The Truman Show (1998)