期末了,程设老师说要交实验报告了,所以有了下文。

作业量是这样的:
总共有8个实验作业,每个作业有8道左右的OJ题目,需要将原来提交到OJ系统里面的代码复制到Word文档的报告模板中,之后再把运行结果截图下来放到报告中,之后打上这道OJ的题目等统一的信息就可以了。

总共估算了一下接近70多道题左右,总共分成了10个实验报告。

一个一个网页打开复制?不存在的啊!Life is too short , I use Python.

刚好前段时间写了一个小爬虫,那么就来实战一下吧。

1) 首先,登入,获得Cookies。
2) 分析链接地址,可以直接看出来链接中带了题目ID,所以很方便。
3) 但是代码详情页的Link并没有发现ID,所以只能从提交列表读取到代码详情页的 ID,之后继续爬代码详情页。

其实逻辑很简单,而且实现也十分容易。

Python Version : Python3.6
安装模块:lxmlWin32clipboard(忘了是不是自带的)等

由于正则不太会用,所以采用了Xpath来读取页面内容,不得不说,Xpath真的好用。
那么脚本读取一个代码的流程大致如此:
根据ID读取提交列表并保存好题目的名字 -> 在提交列表里面找到代码详情页的链接 -> 读取代码

这里还用到了一个Win32clipboard 剪辑版,但是由于在编码方面不太熟悉,遇到乱码会直接崩溃,不知道如何处理,如果有知道的可以请教一下。

另外,本想做一个快捷键的,但是...好像不会...没有深究...如有研究希望请教一下。

图片目前放不了,因为宿舍连了VPN但是不能登入OJ系统,所以...下次去图书馆有机会补图吧。

综上,写代码写了一个小时(写代码的快感),做10个实验报告不到一个小时(关键是轻松啊,根本不用怎么动鼠标),效率贼高。

Python:Click to download
使用的时候注意模块安装以及Cookies修改

最后修改:2019 年 01 月 03 日
如果觉得我的文章对你有用,请随意赞赏