Python爬取信息管理系统计算学分绩点
试手登录了下我们学校的研究生信息管理系统,自动计算学分绩点
# -*- 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爬取信息管理系统计算学分绩点的更多相关文章
- Python 爬取美女图片,分目录多级存储
最近有个需求:下载https://mm.meiji2.com/网站的图片. 所以简单研究了一下爬虫. 在此整理一下结果,一为自己记录,二给后人一些方向. 爬取结果如图: 整体研究周期 2-3 天, ...
- 没有内涵段子可以刷了,利用Python爬取段友之家贴吧图片和小视频(含源码)
由于最新的视频整顿风波,内涵段子APP被迫关闭,广大段友无家可归,但是最近发现了一个"段友"的app,版本更新也挺快,正在号召广大段友回家,如下图,有兴趣的可以下载看看(ps:我不 ...
- 萌新学习Python爬取B站弹幕+R语言分词demo说明
代码地址如下:http://www.demodashi.com/demo/11578.html 一.写在前面 之前在简书首页看到了Python爬虫的介绍,于是就想着爬取B站弹幕并绘制词云,因此有了这样 ...
- Python 爬取淘宝商品数据挖掘分析实战
Python 爬取淘宝商品数据挖掘分析实战 项目内容 本案例选择>> 商品类目:沙发: 数量:共100页 4400个商品: 筛选条件:天猫.销量从高到低.价格500元以上. 爬取淘宝商品 ...
- Python 爬取 热词并进行分类数据分析-[解释修复+热词引用]
日期:2020.02.02 博客期:141 星期日 [本博客的代码如若要使用,请在下方评论区留言,之后再用(就是跟我说一声)] 所有相关跳转: a.[简单准备] b.[云图制作+数据导入] c.[拓扑 ...
- 教你用python爬取抖音app视频
记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 思 ...
- 用Python爬取分析【某东618】畅销商品销量数据,带你看看大家都喜欢买什么!
618购物节,辰哥准备分析一波购物节大家都喜欢买什么?本文以某东为例,Python爬取618活动的畅销商品数据,并进行数据清洗,最后以可视化的方式从不同角度去了解畅销商品中,名列前茅的商品是哪些?销售 ...
- Python爬取《你好李焕英》豆瓣短评并基于SnowNLP做情感分析
爬取过程在这里: Python爬取你好李焕英豆瓣短评并利用stylecloud制作更酷炫的词云图 本文基于前文爬取生成的douban.txt,基于SnowNLP做情感分析. 依赖库: 豆瓣镜像比较快: ...
- Python爬取 | 唯美女生图片
这里只是代码展示,且复制后不能直接运行,需要配置一些设置才行,具体请查看下方链接介绍: Python爬取 | 唯美女生图片 from selenium import webdriver from fa ...
随机推荐
- 【Notepad++】notepad++主题和字体设置(非常好看舒服的)
#效果图 1.字体:Courier New 字号:14号字体 2.字体:Consolas 字号:14号字体 #设置方法 1.设置---语言格式设置 2.选择主题,同时勾选“使用全局字体”“使用全局字体 ...
- IT兄弟连 Java语法教程 数组 使用foreach循环遍历数组元素
从JDK5之后,Java提供了一种更简单的循环:foreach循环,也叫作增强for循环,这种循环遍历数组和集合更加简洁.使用foreach循环遍历数组和集合元素时,无需获得数组或集合的长度,无需根据 ...
- 关于Maven+Tomcat7下cannot be cast to javax.servlet.Servlet问题的解决办法
今天在开发 JavaWeb 项目的时候,遇到了这么一个问题,这个错误是我在进行表单的异步提交的时候出现的.无法转化为 Servlet 经过我的一番检查之后!没有发现任何问题.... 注解配置无误 继承 ...
- LinqMethod 实现 LeftJoin
LinqMethod 实现 LeftJoin Intro 有时候我们想实现 leftJoin 但是 Linq 提供的 Join 相当于是 INNER JOIN,于是就打算实现一个 LeftJoin 的 ...
- 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 ...
- 最全的.NET Core跨平台微服务学习资源
一.Asp.net Core基础 微软中文官网:https://docs.microsoft.com/zh-cn/aspnet/core/getting-started/ 微软英文官网:https:/ ...
- C# 校验并转换 16 进制字符串到字节数组
问题 最近在进行硬件上位机开发的时候,经常会遇到将 16 进制字符串转换为 byte[] 的情况,除了这种需求以外,还需要判定一个字符串是否是有效的 16 进制数据. 解决 字符串转 byte[] 的 ...
- python基础(6):基本数据类型一(int、bool、str)
1. 基本数据类型 1. int ==> 整数,主要⽤来进⾏数学运算 2. str ==> 字符串,可以保存少量数据并进⾏相应的操作 3. bool==>判断真假,True,Fals ...
- Python--方法/技巧在哪用的典型例子
就我个人在学习Python的过程中,经常会出现学习了新方法后,如果隔上几天不用,就忘了的情况,或者刚学习的更好的方法没有得到应用,还是沿用已有的方法,这样很不利于学习和掌握新姿势,从而拉长学习时间,增 ...
- Java日期时间API系列1-----Jdk7及以前的日期时间类
先看一个简单的图: 主要的类有: Date类负责时间的表示,在计算机中,时间的表示是一个较大的概念,现有的系统基本都是利用从1970.1.1 00:00:00 到当前时间的毫秒数进行计时,这个时间称为 ...