/grids-spider

a spider for programming.grids.cn

Primary LanguagePython

README

1. 依赖

python3

bs4库

lxml库

2. 文件说明

parse_score.py 获取某次作业中,所有同学所有题目的第一次pass时间,并存入文件

parse_file.py根据多个parse_score.py得到的文件,统计学生的分数

3. 使用方式

  1. 以助教或教师身份登录编程网格,在chrome的console中,输入document.cookie,获得类似passport=xxxxxx的cookie。用xxxxxx这部分内容,替换掉parse_score.py文件中的mycookie

  2. 对于需要统计分数的作业,进入教师页面。

    复制该页面的链接,替换掉parse_score.py文件中的myurl

    替换掉parse_score.py文件中的file_name,为方便后续处理建议文件名取为数字

    运行python3 parse_score.py 即可获取所有学生该次作业的所有题目的第一次正确提交时间。

  3. 修改url,和输出文件名,对所有需要统计的作业进行第2步操作

  4. 修改parse_file.py中的for i in range(2, 6):,这里本来是读取读取2.txt至5.txt,按实际情况修改

    执行python3 parse_file.py,会计算出所有同学的最终成绩

4. 成绩计算方式

第一步 每题排序:对于每一道题目,按照题目第一次提交成功的时间,对所有成功提交的学生排一个序;然后,把哪些没有提交、或没有成功提交的学生排在最后;这样得到全班学生的一个排序。

第二步 每题给分:首先,对于每个题目,排在第一位的学生得满分100分,排在最后的学生得75分(中间同学的成绩用线性插值的方式处理);然后,把排在最后的那些没有提交或没有成功提交的学生分数设置为0;如果发现抄袭现象,则把抄袭者的分数置为0。

第三部 综合给出平时成绩:计算每个学生所有题目分数的平均值,作为平时成绩。

==该计算方式,会使有较多题目没有pass的同学,得到相对低的分数==