python爬虫实例—获取北邮教务GPA
# -*- coding: cp936 -*-
#计算北邮教务GPA程序
#by JerryFang
#2013.11.13
import urllib2
import re
import cookielib
from urllib import urlencode
import sys,codecs
def CalcGPA():
print '''
红领巾(RedCraft)--北邮GPA计算器
1 计算北邮URP教务系统GPA(仅限内网登录:登录端口为教务系统1)
2 免修成绩不予计算
3 算法为:sum(学分*成绩)/sum(学分)
4 用户名输错了就费了,这个错误还不会写
by JerryFang
'''
uname = raw_input('请输入用户名\n')
pwd = raw_input('请输入密码\n')
# cookie
cj = cookielib.LWPCookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
# Login登录POST包中获得
user_data = {'type':'sso',
'zjh':uname,
'mm':pwd
}
url_data = urlencode(user_data)
#使用firefox+HttpFox抓包查看得到登录url
req = urllib2.Request(
url = 'http://211.68.70.198:8011/jwLoginAction.do',
data = url_data
)
result = opener.open(req)
#抓包获得成绩url
result = opener.open('http://211.68.70.198:8011/gradeLnAllAction.do?type=ln&oper=fainfo&fajhh=204')
#WARNING:decode将网页的编码转化为unicode,网页编码在html头部可以看到
cont = result.read().decode('gb2312')
#密码错误处理
if cont.find('''setTimeout('init()',0)''') == 0:
print '输入用户名密码错误'
return 0
#正则式挖取有用内容
a = re.compile(u'''<tr.+?>(.+?)</tr>''', re.DOTALL)
b = re.compile(u'''<td align="center">(.+?)</td>''', re.DOTALL)
c = re.compile(u'''<p align="center">(.+?) </P>''', re.DOTALL)
data = []
myItems = a.findall(cont, re.S)
for item in myItems:
x = b.findall(item, re.S)
for i in x:
#WARNING:如果不用strip正则式无法匹配出c正则式(疑问??)
j = i.strip()
ma = c.match(j)
#将信息统一为unicode形式
if ma:
tmp = c.findall(j)
dataItem = tmp[0]
else:
dataItem = j
#WARNING:将unicode的数据转化为ascii(str类)存储
data.append((dataItem).encode('gbk'))
l = len(data)
sumCredit = 0
sumGPA = 0
for i in range(l/6):
#处理免修的特殊情况
if data[i*6+5] == '免修':
continue
credit = float(data[i*6+3])
grade = float(data[i*6+5])
sumGPA += credit*grade
sumCredit += credit
print '您的平均成绩为'
print sumGPA/sumCredit
CalcGPA()
raw_input('按任意键退出')
##爬虫教程+扒山大教务实战:http://blog.csdn.net/pleasecallmewhy/article/details/8934726
##py2exe:http://www.cnblogs.com/jans2002/archive/2006/09/30/519393.html
python爬虫实例—获取北邮教务GPA相关推荐
- python爬虫实例-记录一次简单的Python爬虫实例
本次的这篇文章主要是和大家分享了一篇关于记录一次简单的Python爬虫实例 ,有需要的小伙伴可以看一下. 主要流程分为: 爬取.整理.存储 1.其中用到几个包,包括 requests 用于向网站发送请 ...
- python爬虫进阶案例,Python进阶(二十)-Python爬虫实例讲解
#Python进阶(二十)-Python爬虫实例讲解 本篇博文主要讲解Python爬虫实例,重点包括爬虫技术架构,组成爬虫的关键模块:URL管理器.HTML下载器和HTML解析器. ##爬虫简单架构 ...
- python爬虫实例教程之豆瓣电影排行榜--python爬虫requests库
我们通过requests库进行了简单的网页采集和百度翻译的操作,这一节课我们继续进行案例的讲解–python爬虫实例教程之豆瓣电影排行榜,这次的案例与上节课案例相似,同样会涉及到JSON模块,异步加载 ...
- Python爬虫实例 wallhaven网站高清壁纸爬取。
文章目录 Python爬虫实例 wallhaven网站高清壁纸爬取 一.数据请求 1.分析网页源码 2.全网页获取 二.数据处理 1.提取原图所在网页链接 2.获取高清图片地址及title 三.下载图 ...
- python爬虫实例之——多线程爬取小说
之前写过一篇爬取小说的博客,但是单线程爬取速度太慢了,之前爬取一部小说花了700多秒,1秒两章的速度有点让人难以接受. 所以弄了个多线程的爬虫. 这次的思路和之前的不一样,之前是一章一章的爬,每爬一章 ...
- 饱暖思淫欲之美女图片的Python爬虫实例(二)
美女图片的Python爬虫实例:面向服务器版 ==该爬虫面向成年人且有一定的自控能力(涉及部分性感图片,仅用于爬虫实例研究)== 前言 初始教程 存在问题 解决思路 目标 实现步骤 硬件配置 服务器信 ...
- Python爬虫实例(1)--requests的应用
Python爬虫实例(1) 我们在接下来的爬虫实例(1)里面将逐步的循序渐进的介绍爬虫的各个步骤. 已及时用到的工具,以及具体情况下的用法. 我们的任务是这样的: 爬取<修真聊天群>小说的 ...
- Python爬虫实例-爬取豆瓣电影Top250
这是本人Python爬虫实例的第二个实例,不过想来好像没有很大的难度所以适合当做新手入门的第一个爬虫.放在这里供大家参考. 本次实例爬取的网站为豆瓣电影Top250,使用到的第三方库有urllib,B ...
- AJAX教程美食滤镜,Python爬虫实例——爬取美团美食数据
1.分析美团美食网页的url参数构成 1)搜索要点 美团美食,地址:北京,搜索关键词:火锅 2)爬取的url https://bj.meituan.com/s/%E7%81%AB%E9%94%85/ ...
最新文章
- 查询oracle数据库adg的模式,Oracle11g ADG配置
- java全面的计算器代码_Java实现计算器的代码
- 转:Web Service入门开发简单例子--很详尽
- 公司电脑监控软件_公司电脑监控软件,如何限制公司电脑网络游戏
- MOSS/Sharepoint 如何更改一台已经安装了SharePoint的服务器名称
- Hadoop伪分布式配置和搭建,hadoop单机安装,wordcount实例测试,hadoop安装java目录怎么找,问题及问题解决方法
- centos mysql无法启动 sock_linux下mysql无法启动的解决方法
- #include_next
- sql server 锁定_关于锁定SQL Server的全部
- 搜索引擎优化的用乐云seo_搜索引擎优化SEO
- dmx512 java_DMX512控制协议及其实现
- 敏捷开发以及极限编程与SCRUM的特点和区别
- 高通平台添加自己的product后com.qualcomm.qti.tetherservice不停crash
- Matlab中return语句
- 使用蒲公英组网实现企业微信访问局域网数据
- SPEC 2000使用的详细介绍(1)
- 拆解了20个企业微信社群的我, 发现【社群营销】最好的方法应该是这样!
- Beautifulsoup模块
- vue中实现动画效果--三种方式
- PPT怎么转换成PDF?有哪些转换方法?
热门文章
- 计算机专业买什么商务本好,单位购买什么笔记本的比较多?各位能不能说来听听?华硕笔记本电脑哪个系列性价好,商务办公用?...
- 操作系统期末复习重点
- 通信工程交换传输实习报告
- 大红喜庆版UI猜灯谜又叫猜字谜微信小程序源码下载
- 2021-2022学年广州市第二中学九年级第一学期12月考英语试题
- CCRenderTexture画点出现十字架歪解
- “SISTERS姐妹”双个展在南京W艺术空间举办
- 苹果手机屏幕尺寸_苹果,小米在折叠屏手机上曝光新专利,TCL展示卷轴式屏幕手机...
- IDNA-ABF: DNA甲基化可解释预测的多尺度深度生物语言学习模型
- roguelike2d 摄像机参数设置