Skip to content

baker221/PKUAutoSubmit

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PKUAutoSubmit

PKU一键出入校备案小工具 v1.9.1 (2020.10.12)

为作者的第一个 selenium 练手小项目,完善程度较低,欢迎任意类型的使用与改进

P.S. 由于作者水平与精力所限,暂时仅提供 win x64 版本( x86 请自行测试),mac OS 版本可能会在之后推出,也欢迎自行修改开发(理论上只需要更换 PhantomJS 版本即可)

Update: 现已支持 mac OS(感谢 JuiAnHsu 的 contribution),欢迎各使用 mac OS 系统的小伙伴们参与使用与开发升级

Note: 由于 run.batautoRun.bat 为 Windows 批处理程序,无法在 mac OS 上运行,故 mac OS 中的定时运行功能仍在开发中

Note: 本项目已上传至北大网盘

Update: 修复填报入校备案时可能出现的会话失效导致填报失败的问题

说明

  • 本工具采用 Python3 搭配 selenium 完成自动化操作,实现全自动填报学生出入校备案,为频繁出入校的 PKU 学子(不频繁也行)提供较为便捷的解决方案
  • 采用 PhantomJS 无头浏览器作为 driver ,相较 ChromeFirefox 等浏览器更为轻量化,且运行快速
  • 支持设置在运行结束后返回历史备案页面截图,无需自行登录查看备案结果
  • 搭配 Windows 定时任务,可实现定时(如每日)免打扰填报并在指定位置返回结果截图
  • 第三方依赖包几乎只有 selenium 一个,从下到用贼jr快

安装与需求

Python 3

本项目至少需要 Python 3,可以从Python 官网下载安装

本项目采用 Python 3.7.4 开发,由于含有 f-string ,请至少使用 Python 3.6 及以上版本,建议使用 Python 3.7 及以上版本

Packages

selenium

采用如下语句安装 selenium,支持 2.48.0 及以上版本:

pip3 install selenium

然后就没了。惊喜吧!

基本用法

  1. config.sample.ini 文件重命名为 config.ini ,请不要新建文件,不然自己搞定编码问题
  2. 用文本编辑器(建议代码编辑器)打开 config.ini 文件
  3. 配置 [login][common][out][in][capture] 这几个 Section 下的变量,在 config.ini 文件内有详细注释
  4. 进入项目根目录,以命令 python main.py 运行主程序即可
    • 亦可双击 run.bat 运行
    • 亦可用代码编辑器打开 main.py 并运行(并不推荐)

定时运行

本项目中的 autoRun.bat 文件可提供在静默免打扰情况下运行程序的选择,配合 Windows 任务计划管理可实现定期自动填报,具体请参考Win10下定时启动程序或脚本

Note: 静默运行的弊端为无法看到任何报错信息,若程序运行有错误,使用者很难得知。故建议采用定时静默运行时,设置备案历史截图功能并定期查看截图,若截图生成说明已成功运行,并可通过查看截图进一步确认。

补充说明

  1. 本项目主要为校内日常出入的同学提供便捷解决方案,会同时填报出校与入校备案,不支持单独填报,也不支持京外返校填报。若有此类特殊需求,烦请手动填报。
  2. PhantomJS 作为经典的轻量级无头浏览器,相较 Chrome 等大型浏览器体量小的多,不占空间且运行快速。但是由于其本身属性也可能造成一系列问题,如:
    • driver 启动后第一次通过 iaaa 认证必触发一次 500 错误,通过 headers 设置也无法改善问题,故在运行中有所标注,一般仅需 Retry 一次即可。限于作者水平,还未找出具体原因,若有发现的欢迎 report(已修复,感谢 RainshawGao 的 contribution)
    • 由于仅为练手项目,对于学校土豆服务器造成的各类玄学问题作者只能尽力避免,但并无完善的 Exception 处理机制,若遇到报错欢迎 report,且万能的重来一次大法可以解决绝大多数问题
  3. 当前看来,无论出不出学校都可以填报备案,所以每天定时运行一次并没有什么问题(事实上,作者在测试阶段每天填几十次,希望人没事.jpg)
  4. 项目中的 \phantomjs\bin\ 目录下有两个应用程序 phantomjsphantomjs.exe,分别对应 mac OS 和 Windows 的版本,为节省空间,可在确保运行无差错后删除另一个

责任须知

  • 本项目仅供参考学习,造成的一切后果由使用者自行承担
  • 本项目敏感性不比 skj,利人利己,私以为还是可以合理扩散一下的,吧?

证书

Apache License 2.0

About

PKU一键出入校备案小工具

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 96.2%
  • Shell 3.8%