试手登录了下我们学校的研究生信息管理系统,自动计算学分绩点

 # -*- coding:utf-8 -*-
import urllib
import urllib2
import re
import cookielib
from bs4 import BeautifulSoup class OUC:
def __init__(self,username,password):
self.loginUrl = "http://graduate.ouc.edu.cn/j_acegi_security_check"
# self.leftFrameUrl = "http://graduate.ouc.edu.cn/listLeft.do?"
self.frameGradeUrl = "http://graduate.ouc.edu.cn/accessModule.do?moduleId=25011&groupId="
# self.gradeUrl = "http://graduate.ouc.edu.cn/listMyBulletin.do?"
self.cookies = cookielib.CookieJar()
self.postdata = urllib.urlencode({
'j_username':username,
'j_password':password,
'groupId':''
})
self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookies)) def getPage(self):
user_agent = 'Mozilla/4.0(compatible;MSIE 5.5;Windows NT)'
headers = {'User-Agent':user_agent}
request = urllib2.Request(
url=self.loginUrl,
data=self.postdata,
headers=headers
)
result = self.opener.open(request)
gradeResult = self.opener.open(self.frameGradeUrl)
btfsp = BeautifulSoup(gradeResult.read())
# print btfsp.prettify() content = btfsp.body.find_all("tr")
resultTable = [[0 for col in range(3)] for row in range(14)]
print u'专业名称'.rjust(15),'\t',u'成绩','\t',u'学分'
i = 0
for item in content[1:]:
itemList = item.find_all("td")
classname = itemList[1].text.split(' ')[0].strip()
score = itemList[6].text.split('\n')[7].strip()
weight = itemList[7].text
resultTable[i][0] = classname
resultTable[i][1] = float(score)
resultTable[i][2] = float(weight)
print classname.rjust(15),'\t',score.rjust(3),'\t',weight.rjust(3)
i += 1
# print '%10s' % classname,'%-3s' % score.split('\n')[7],'\t',weight
# 计算GPA
sumGPA = 0
sumWeight = 0
for k in range(14):
sumWeight += resultTable[k][2]
sumGPA += resultTable[k][1] * resultTable[k][2]
gpa = sumGPA / sumWeight print u'\n学分绩点为:',gpa if __name__ == '__main__':
# ouc_stu = OUC()
print '================ Welcome ===================='
print u'Please enter your login messages:'
username = input('username:')
password = input('password:')
print u'Waiting...'
ouc_stu = OUC(username,password)
ouc_stu.getPage()

原文地址:http://www.cnblogs.com/leonwen/p/5730874.html

Python爬取信息管理系统计算学分绩点的更多相关文章

  1. Python 爬取美女图片,分目录多级存储

    最近有个需求:下载https://mm.meiji2.com/网站的图片. 所以简单研究了一下爬虫. 在此整理一下结果,一为自己记录,二给后人一些方向. 爬取结果如图:   整体研究周期 2-3 天, ...

  2. 没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)

    由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个"段友"的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不 ...

  3. 萌新学习Python爬取B站弹幕+R语言分词demo说明

    代码地址如下:http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这样 ...

  4. Python 爬取淘宝商品数据挖掘分析实战

    Python 爬取淘宝商品数据挖掘分析实战 项目内容 本案例选择>> 商品类目:沙发: 数量:共100页  4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 爬取淘宝商品 ...

  5. Python 爬取 热词并进行分类数据分析-[解释修复+热词引用]

    日期:2020.02.02 博客期:141 星期日 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入] c.[拓扑 ...

  6. 教你用python爬取抖音app视频

    记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 思 ...

  7. 用Python爬取分析【某东618】畅销商品销量数据,带你看看大家都喜欢买什么!

    618购物节,辰哥准备分析一波购物节大家都喜欢买什么?本文以某东为例,Python爬取618活动的畅销商品数据,并进行数据清洗,最后以可视化的方式从不同角度去了解畅销商品中,名列前茅的商品是哪些?销售 ...

  8. Python爬取《你好李焕英》豆瓣短评并基于SnowNLP做情感分析

    爬取过程在这里: Python爬取你好李焕英豆瓣短评并利用stylecloud制作更酷炫的词云图 本文基于前文爬取生成的douban.txt,基于SnowNLP做情感分析. 依赖库: 豆瓣镜像比较快: ...

  9. Python爬取 | 唯美女生图片

    这里只是代码展示,且复制后不能直接运行,需要配置一些设置才行,具体请查看下方链接介绍: Python爬取 | 唯美女生图片 from selenium import webdriver from fa ...

随机推荐

  1. 【Notepad++】notepad++主题和字体设置(非常好看舒服的)

    #效果图 1.字体:Courier New 字号:14号字体 2.字体:Consolas 字号:14号字体 #设置方法 1.设置---语言格式设置 2.选择主题,同时勾选“使用全局字体”“使用全局字体 ...

  2. IT兄弟连 Java语法教程 数组 使用foreach循环遍历数组元素

    从JDK5之后,Java提供了一种更简单的循环:foreach循环,也叫作增强for循环,这种循环遍历数组和集合更加简洁.使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据 ...

  3. 关于Maven+Tomcat7下cannot be cast to javax.servlet.Servlet问题的解决办法

    今天在开发 JavaWeb 项目的时候,遇到了这么一个问题,这个错误是我在进行表单的异步提交的时候出现的.无法转化为 Servlet 经过我的一番检查之后!没有发现任何问题.... 注解配置无误 继承 ...

  4. LinqMethod 实现 LeftJoin

    LinqMethod 实现 LeftJoin Intro 有时候我们想实现 leftJoin 但是 Linq 提供的 Join 相当于是 INNER JOIN,于是就打算实现一个 LeftJoin 的 ...

  5. C# copy files from source directory to destination file and rename repeated files and does not override

    static void CopyFiles() { string sourceDir = @"D:\C\ll"; string destDir = @"D:\LL&quo ...

  6. 最全的.NET Core跨平台微服务学习资源

    一.Asp.net Core基础 微软中文官网:https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/ 微软英文官网:https:/ ...

  7. C# 校验并转换 16 进制字符串到字节数组

    问题 最近在进行硬件上位机开发的时候,经常会遇到将 16 进制字符串转换为 byte[] 的情况,除了这种需求以外,还需要判定一个字符串是否是有效的 16 进制数据. 解决 字符串转 byte[] 的 ...

  8. python基础(6):基本数据类型一(int、bool、str)

    1. 基本数据类型 1. int ==> 整数,主要⽤来进⾏数学运算 2. str ==> 字符串,可以保存少量数据并进⾏相应的操作 3. bool==>判断真假,True,Fals ...

  9. Python--方法/技巧在哪用的典型例子

    就我个人在学习Python的过程中,经常会出现学习了新方法后,如果隔上几天不用,就忘了的情况,或者刚学习的更好的方法没有得到应用,还是沿用已有的方法,这样很不利于学习和掌握新姿势,从而拉长学习时间,增 ...

  10. Java日期时间API系列1-----Jdk7及以前的日期时间类

    先看一个简单的图: 主要的类有: Date类负责时间的表示,在计算机中,时间的表示是一个较大的概念,现有的系统基本都是利用从1970.1.1 00:00:00 到当前时间的毫秒数进行计时,这个时间称为 ...