Jnu-StuHealth
模拟滑块实现打卡项目
本项目实现自动打卡建议自备一台连续不断运行的服务器,该项目是在ubuntu上面实现的。
本项目的设想是必须开通邮件通知,因为上去检查下今天打卡没与设计概念背道而驰
因为验证码具有短暂的时效性,后改用了生产者与消费者模式,即产即消!
最近对拼图有不错的识别,不建议个人使用,因为得每天上去下操作了
*最终解释权由发布者持有
若您切换了定位,请及时手动打卡一次即可。
本项目初衷是避免重复性,但请自己确保真实性。
本项目已于Github进行开源/共享,秉承技术无界限的原则
一切使用该项目造成的后果应由使用者负责
仅限于x86架构,同我arm架构的话就采用下面的快速部署
因为添加了微信认证,并没有时间进行重新打包 (废弃)
请跳转到对应的分支下👉 https://github.com/HengY1Sky/Jnu-Stuhealth/tree/docker
授权码的获取简单给个链接🔗: https://www.cnblogs.com/kimsbo/p/10671851.html
# 先在Root用户下
# 默认是存在对应的Python以及pip环境的
$ git clone https://github.com/HengY1Sky/Jnu-Stuhealth clock
$ chmod -R 755 ./clock
$ cd clock
$ pip install -r requirements.txt
$ apt update && apt upgrade # 更新包
$ apt install firefox
# bin目录下已经自带driver,如果版本不符合请到对应release下载正确版本
# 切回去用户
$ su ubuntu
$ vim user_info.json # 编辑用户信息
# env: dev or pro; platform: mac or windows or linux
$ vim setting.json # 编辑配置选项(不开代理proxy不需要填写)
$ python app.py
├── app.py # 入口运行文件
├── bgImg # 背景图片
├── bin # driver执行文件
├── hideHeader # 隐藏浏览器识别
├── log # 输出日志
│
├── user_info.json # 编辑信息的
├── setting.json # 用于方便调试的以及后面的拓展
├── handlePackage.py # 处理发包
├── handleValidate.py # 处理验证码
├── handleWechat.py # 处理微信登陆
├── handleToken.py # 处理微信Token
├── handleProxy.py # 处理高匿代理
│
├── requirements.txt # 依赖文件
└── utils.py # 仓库
# 开启定时
# 参考链接 https://blog.csdn.net/longgeaisisi/article/details/90477975
$ sudo apt-get install cron
$ crontab -l # 是否安装以及已有任务
$ service cron start # 开启cron
$ crontab -e # 选择3
# 将 1 0 * * * /usr/bin/python /home/ubuntu/clock/app.py 写入注意修改路径
$ service cron restart
# 建议将app文件中的记录日志的路径写为绝对的
- 当遇到说
webp
·文件不识别的时候:pip install --upgrade pillow
升级下就好了 - 当出现
state code 1
时候,在当前目录下打开geckodriver.log
查看情况进行修复 - 当
root
用户无法使用,sudo crontab -u ubuntu -e
为ubuntu用户开启定时任务 - 报错
Unable to find zbar shared library
时在Ubuntu下sudo apt-get install libzbar-dev
其他问题请谷歌解决~ 代码问题请提交PR或者开Issue
最新描述:微信认证终端显示
20220227
加入拓展之后并在Crontab下执行会路径发生问题,经过我的排查在当前文件夹下使用 cp -r ./hideHeader /home/ubuntu
并赋予执行权限 chmod -R 777 /home/ubuntu/hideHeader
即可。至于路径不统一,查看我的博客简单配置即可找到问题所在。
20220225
受到小透明的启发,发现利用油猴方式是可以在不降低版本的情况下进行浏览器头部的绕过,以及发现部分代码存在可以优化空间。 正如小透明所说,降低版本是一个不明智的决定,抱歉~
- 添加上了绕过方式
- 添加了Logging日志记录格式
- 暂时修复Connection aborted
20220215
收到邮箱错误,上去Debug发现只要是自动浏览器总是错的,不可能是对的。由于issue#1680 链接:mozilla/geckodriver#1680
作者在上面说:And that is because the WebDriver spec defines that property on the Navigator object, which has to be set to true when tests are running with webdriver enabled. 即在88.0版本以上之后geckodriver不提供window.navigator.webdriver设置为None
如果我发现有像谷歌存在execute_cdp_cmd
的方法我会第一时间更新,所以总的思路已经有了。
$ apt remove firefox # 卸载最新版本的firefox
$ wget https://ftp.mozilla.org/pub/firefox/releases/87.0b1/linux-x86_64/zh-CN/firefox-87.0b1.tar.bz2
$ tar -jxvf firefox-87.0b1.tar.bz2 # 会有个firefox文件
$ cd firefox
$ ./firefox --version # 查看版本
$ pwd # 查看firefox在哪里
$ sudo echo "export PATH=/home/ubuntu/firefox:$PATH" > /etc/profile # 写入
$ source /etc/profile
$ firefox --version # 查看版本
$ python handleValidate.py # 如果为None就是成功了的(执行时注意用户)
# 关闭自动更新 https://blog.csdn.net/yu1014745867/article/details/79639440
$ crontab -e # 重新编辑
# 1 0 * * * . /etc/profile;/usr/bin/python /home/ubuntu/clock/app.py 将这句话改成你的对应路径写入