关于ZJ某理工大学python自动打卡
@TOC
!!!此文章仅供技术参考,疫情防控人人有责,请务必认真打卡!!!
此脚本基于Chromedriver(或者Firefox driver)以及selenium库
chrome driver安装方法
下载chromedriver
在下载chromedriver之前,我们先看一下我们的chrome浏览器的版本,一会下载对应的版本chromedriver;
在chrome浏览器点击设置,点击关于chrome,可以看到对应的版本:
所有chromedriver均可在下面链接中下载到:
http://chromedriver.storage.googleapis.com/index.html
直接下载就可以,解压下来是exe文件,解压下来后,将这个exe文件放在你的python的安装目录下,然后配置环境变量,将路径加入到Path中去,这里不会可以自己搜索。
之后在命令行界面中通过chromedriver命令可查看ChromeDriver是否正常安装。若正常,则会出现如下类似输出:
1 |
|
Selenium安装方法
仅一句pip install selenium
即可。
签到代码解析以及常见错误解析
由于Selenium就是直接运行浏览器在进行操作,所以不必伪装头文件了。
对浏览器进行初始化
1 |
|
这里的宽度、高度、分辨率视情况而定。
模拟浏览器进行访问
1 |
|
进行签到
1 |
|
这里传入的是定义好的uid和pwd
其中的Xpath是你所在页面的所需要输入值的Xpath(因网站而异),获取方式如下:
为了防止网站是懒加载,所以可以在页面跳转或者进入窗体等通过设置time.sleep(2)
来阻塞两秒等待加载(有的学校可能服务器是土豆服务器需要加载时间长一些)
邮件通知
通过以下代码可以获取签到完后的反馈信息用于邮件通知或者报错通知用于修复bug。
1 |
|
通过以下代码可以发送邮件:
1 |
|
以上subject表示发送主题,content表示发送内容。
同时整体的结构使用try和except,其中发生错误时,可以用traceback来返回错误信息(这里感谢粟师傅的帮助)
1 |
|
SMTP服务需要在邮箱内开启,这个可以自行进行查找这里就不赘述了。
库
1 |
|
常见错误
出现元素找不到
- 绝大部分是Xpath路径出错,建议仔细查找。
- 如果在页面上只有可视的部分进行了操作,不可视的地方出现“元素找不到”,在确认Xpath路径绝对正确的情况下,也许是浏览器初始化设置出问题了,尽量让所有的内容在一页上。
- 可能是页面上有窗体什么的,如果页面中有嵌套iframe,直接定位iframe中的元素定位不到,考虑是iframe的原因。应该先定位到iframe,然后再去定位元素。
- 还有很多突发情况,建议多参考博客。
出现在自己的PC上可以运行但是放到服务器上,出现错误
- 这个视错误而定,如果是主题出错,说明坏境没有安装好
- 如果只是邮件发送不出去,建议查看服务器是否被占用了邮件发送的端口,阿里云等有时候会占用服务器的一部分端口,这时候换个端口即可。
- 还有很多突发情况,建议多参考博客。
源代码已经放在Github上,欢迎来击剑。
如有雷同,纯属巧合,如有错误,请大佬指出,晚辈一定改正
参考:https://blog.csdn.net/li827437709/article/details/108033990感谢博主
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!