Code Monkey home page Code Monkey logo

zhengfang's Introduction

正方教务系统助手

该项目中的解析代码是2016年编写的,不保证可用于当前你学校的教务系统。代码简单,仅供参考。

1.项目定义

这个项目实现了正方教务系统的一套API: 包括模拟登陆,个人信息查询,课表获取,成绩查询等等。 随着API的不断完善于扩充,可以很方便的作为后台服务。 比如教务系统手机客户端,桌面客户端,也可以作为某些特定应用需要学生课表,信息的后台。

同时这个项目定义为助手,可以继续开发其他便捷的工具:

  • 自动完成评教任务
  • 期末新的成绩公布,邮件通知
  • 分学期,分学年绩点计算
  • 公选课抢课功能

2.项目结构

  1. ZhengFang.db 数据库
  2. model.py 模型层,通过ORM与数据库相连
  3. spider.py 业务层,网页爬虫,项目入口
  4. parseHtml.py 业务层,网页解析工具

3.如何使用

git clone [email protected]:nghuyong/ZhengFang.git
cd ZhengFang/
pip install -r requirements.txt
# 将spider.py文件中的教务系统地址,账号,密码替换成你自己的
python spider.py

4.项目功能

项目均已江南大学正方教务系统为例测试

4.1模拟登陆

登陆有两种方式

  1. 默认登陆:

需要处理验证码。将验证码下载到本地。code.jpg。人工识别验证码后,手动输入验证码。实现登陆。

  1. 绕过验证码登陆:

由于正方教务系统的漏洞在若存在default5.asp页面,可以不用验证码直接登陆。可以从default3,default4,都试一试。

4.2个人信息获取

通过教务系统个人信息页面,抓取,个人信息(真的有很多信息!)并持久化保存到数据库中。

4.3课表获取

通过抓取的个人信息读到学生入学的年份,在结合当前时间,就可以知道能够抓取到哪些学期的课表。

例如学生2014年入学,当前是2016年8月,说明至少可以抓取到:

2014-2015年度 第 1 学期

2014-2015年度 第 2 学期

2015-2016年度 第 1 学期

2015-2016年度 第 2 学期

这4个学期的课表,当然由于现在是2016年8月,可能可以抓取到2016-2017年度第 1 学期课表,可以试着抓取。

将抓取到的课表持久化到数据库中。

4.4成绩查询

通过教务系统成绩查询页面中的“历年成绩”抓取,课程成绩,并持久化到数据库中

4.5分学期分学年绩点计算

根据抓取下来的成绩,通过(总的(学分*绩点)/总的学分)分别计算各个学期的绩点与各个学年的绩点

zhengfang's People

Contributors

copytac avatar nghuyong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

zhengfang's Issues

requests.exceptions.TooManyRedirects

Traceback (most recent call last):
File "spider.py", line 230, in
spider.getStudentGrade()
File "spider.py", line 143, in getStudentGrade
response = self.session.get(url)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 487, in get
return self.request('GET', url, *_kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 475, in request
resp = self.send(prep, *_send_kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 606, in send
history = [resp for resp in gen] if allow_redirects else []
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 113, in resolve_redirects
raise TooManyRedirects('Exceeded %s redirects.' % self.max_redirects, response=resp)
requests.exceptions.TooManyRedirects: Exceeded 30 redirects.
发现我们学校教务网站打开获取个人信息页面Object moved to here. 然后一直重定向到http://jwxt.jit.edu.cn/xsgrxx.aspx?xh=xxxxxx
浏览器点击here就可以,莫非是需要传cookie过去?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.