临近期末我等学沫都在紧张的进行着复习(预习),本来时间就不多,居然还让我们去评教万一因为这点时间我们挂科了咋办,于是乎用半生不熟的python写个自动评教的脚本。

一,具体分析:

我们先来评一个抓包来看

1.可以看出

请求方法:POST

地址 : /cjcx/actions/SubmitEvaluationTeaching.aspx

参数 :

cjid:是课程编号

cpjg: 是评级

advice: 是建议

2.来找获得cjid的请求

可以看出

请求方法:post(经测试,get同样有效)

地址:/cjcx/Data/EvaluationCourseData.aspx

没有参数

二,具体流程

1.模拟登陆(之前的文章写过了这里)

2.请求cjid,用正则表达式来找出cjid

3.遍历cjid,构造求参数,向提交地址提交

4.处理请求的返回,判断评教成功与否

三,效果

四,完整代码

#!/usr/bin/env python

# -*- coding:utf-8 -*-

import urllib2

import urllib

import cookielib

import re

cj=cookielib.CookieJar()

headler=urllib2.HTTPCookieProcessor(cj)

opener=urllib2.build_opener(headler)

url="http://jwgl.ntu.edu.cn/cjcx/Default.aspx"#登录页面

url1="http://jwgl.ntu.edu.cn/cjcx/checkImage.aspx"#验证码页面

scoreurl="http://jwgl.ntu.edu.cn/cjcx/Data/ScoreAllData.aspx"#获取分数

cjidurl="http://jwgl.ntu.edu.cn/cjcx/Data/EvaluationCourseData.aspx"

tijiaourl="http://jwgl.ntu.edu.cn/cjcx/actions/SubmitEvaluationTeaching.aspx"

def login():

#输入数据

print u"××××××××××××××××××××南通大学教务系统登陆××××××××××××××××××××"

print u"输入学号!"

xh=raw_input()

print u"输入身份证号!"

sfzh=raw_input()

print u"密码!"

kl=raw_input()

yzm=opener.open(url1)

yzmgif=open("yzm.gif","w")

yzmgif.write(yzm.read())

yzmgif.close()

print u"验证码已保存在本文件目录下(yzm.gif),请查看并输入!"

yzmstr=raw_input()

#数据保存

jilu=open(xh+".txt","w")

jilu.write("学号:"+xh+"\n身份证号:"+sfzh+"\n密码:"+kl)

jilu.close()

values={"__VIEWSTATE":"/wEPDwUJODExMDE5NzY5ZGRgtUdRucUbXsT8g55XmVsTwV6PMw==",

"__VIEWSTATEGENERATOR":"6C0FF253",

"xh":xh,

"sfzh":sfzh,

"kl":kl,

"yzm":yzmstr}

scoreValues={"start":"0",

"pageSize":"80"}

#login

request=urllib2.Request(url,urllib.urlencode(values))

f=opener.open(request)

def pingjiao():

#get cjid

cjidRequest=urllib2.Request(cjidurl)

cjid=opener.open(cjidRequest)

cjidstr=cjid.read()

print cjidstr

restr='"cjid":"(.*?)"(.*?)"kcmc":"(.*?)"'

restr1='true'

pattern=re.compile(restr)

pattern1=re.compile(restr1)

items=re.findall(pattern,cjidstr)

for item in items:

#print item[0],item[2]

print 'subject:'+item[2]+' is doing... '

pjcsValues={"cjid":item[0],"cpjg":"111111111","advice":""}

resultR=urllib2.Request(tijiaourl,urllib.urlencode(pjcsValues))

result=opener.open(resultR)

resultstr=result.read()

#print resultstr

restr=re.findall(pattern1,resultstr)

#print resultstr

if restr!=[] and restr[0]=='true':

print 'success'

else:

print 'failed'

login()

pingjiao()

南通大学python期末考试试卷答案_南通大学自动评教脚本(python)相关推荐

  1. 南通大学python期末考试试卷答案_南通大学试卷A(答案及评分标准)

    课程名称 电动力学 考试班级 物理师范 051 考试标准用时 120 分钟 试卷代号 A 3-1 参考答案及评分标准: 一.问答题:(共两题,每题 10 分,计 20 分) 1 . 答: l s B ...

  2. 南通大学python期末考试试卷答案_南通大学大一下学期英语期末考试必考题答(已排版)...

    第 1 页 共 4 页 新视野大学英语读写教程第二版第二册课后练习答案 unit 1 1. L 2. C 3.D 4. N 5. O 6.A 7. E 8.G 9.I 10. K 她连水都不愿意喝一口 ...

  3. 南通大学python期末考试试卷答案_南通大学2015-2016年1学期《软工》作业点评总结...

    第一次作业(2015.9.13) 作业题目 存在问题 1.学生可能平时写博客的机会比较少,书写格式存在的问题比较多.比如文字排版.博客中的代码直接粘贴(没有使用代码样式).插入的图片太大等等.这些问题 ...

  4. java期末考试试卷及答案文库_Java期末考试试卷答案A

    Java期末考试试卷答案A JAVA程序设计试卷库(第5套)一.单选题(每小题 2 分,共 20 分)1.Java Application源程序的主类是指包含有( A )方法的类.A. main方法 ...

  5. 小猿圈python之python期末考试测试题(一)_小猿圈python之python期末考试测试题(二)...

    快临近期末考试了,小伙伴们是不是又开始焦虑了呢?挂科怎么办?如果很幸运看到小编的文章,你就偷着乐吧,小编总结出:一般python期末考试老师们最爱考的内容,一定要好好看啊,争取做到python不挂科: ...

  6. python期末考试及答案a卷_Python数据分析与数据可视化知到APP期末考试完整答案...

    Python数据分析与数据可视化知到APP期末考试完整答案 更多相关问题 关于班级管理的概念,以下说法中正确的有[]A.是一种有目的的活动B.主要对象是学生C.体现出一种互 [C17]A.progre ...

  7. 南通大学python期末考试试卷_模拟试卷C

    6. 为了使模块尽可能独立,以下选项中描述正确的是 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强 模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 模块的内聚程度要尽量低,且各模块间的耦合 ...

  8. 南通大学python期末考试试卷_python期末考试试题汇总

    6.for i in range(2,n): if n%i==0:break if i==n-1: print('是素数') else: print('不是素数') 7.'abcabcabc'.cou ...

  9. python期末考试及答案广东_Python2020期末考试试题及答案

    Python2020期末考试试题及答案 一.选择题 1.下列是 python 合法标识符的是( B). A. 2variable B. variable2 C. $anothervar D. if 2 ...

最新文章

  1. Ruby中的多行注释?
  2. OC-Foundation框架
  3. Mongodb在Linux下的安装和启动和配置
  4. mot数据集_谈谈ReID与MOT的关系
  5. 如何设置鼠标滚轮html,win7如何设置鼠标滚轮
  6. LeetCode 404. 左叶子之和(递归)
  7. python闭包详解函数_详解python函数的闭包问题(内部函数与外部函数详述)
  8. mysql 定期备份策略,MySQL--3--mysqldump备份策略
  9. OC之集合的创建及应用
  10. DTcms拓展字段添加-配参-页面获取-查询调用-数据配置
  11. L1-011. A-B
  12. yii mysql gii_YII-快速用gii创建一个简单的yii项目!
  13. 阿里巴巴、Amazon、Windows、Android、Google、Internet、iPhone、汽车底盘、以及信用卡都属于平台经济--产品平台---供应链平台---产业平台--双边市场平台
  14. 想从事编程报考专业:计算机技术好,还是软件工程好?
  15. 科技前沿:几款意念控制器
  16. python实现手写体数字识别
  17. 《现代职业教育》杂志正规吗?现代职业教育杂志社现代职业教育编辑部投稿要求
  18. Ansible进阶学习之Playbooks(剧本)的理解使用
  19. git push 报错 ---error: commit 8aa8e31: email address yin.jiaqing@.....com is not registered in your
  20. 用Hadoop,还是不用Hadoop?

热门文章

  1. java转行失败_转行学JAVA,成功和失败的原因
  2. 浅淡深度学习的发机机——张量计算
  3. FFMPEG批量绿幕色度抠像BAT脚本实现
  4. 光栅渲染器(六)着色准备和深度缓存实现
  5. 股市入门基础 :基本术语和概念的解读
  6. YOLOv4论文解读
  7. CPU不同字母的意思
  8. ProSpec Persephin小鼠重组体解决方案
  9. TensorFlow深度学习:3.API示范
  10. Type of the default value for 'songs' prop must be a function