使用python爬取UESTC的信息门户
来源:互联网 发布:jdk1.7 linux 32下载 编辑:程序博客网 时间:2024/04/30 17:33
这个示例主要是展示如何使用Python登录,之后做什么,可以自行发挥想象力
准备工作
需要安装requests和pyquery
sudo pip install requests pyquery
导入所需要的包
import requestsfrom pprint import pprint as prfrom pyquery import PyQuery as pq
登录数据
username = "" # 这里填入用户名和密码password = ""
创建一个session
一个session可以自动持有cookie状态
session = requests.session()
# 主要是先获取一下Cookier = session.get("http://idas.uestc.edu.cn/authserver/login?service=http%3A%2F%2Fportal.uestc.edu.cn%2F")
通过PyQuery获取表单数据
有两个字段 lt,execution 需要从网页中获取
PyQuery允许python使用css选择器获取数据,而css选择器可以通过浏览器的开发人员工具轻易获得
d = pq(r.text);# 从网页中获取动态生成的字段lt = d('#casLoginForm > input[type="hidden"]:nth-child(5)').attr.valueexecution = d('#casLoginForm > input[type="hidden"]:nth-child(7)').attr.valuedata = { "username":username, "password":password, "lt":lt, "execution":execution, "rmShown":1, "dllt":"userNamePasswordLogin", "_eventId":"submit" }
发起登录请求
r = session.post("http://idas.uestc.edu.cn/authserver/login?service=http://portal.uestc.edu.cn/index.portal",data=data)
校验登录结果
pr(session.cookies.get_dict())
{'CASTGC': 'TGT-760597-4Nzt2VckndWuu95jo36sGzdgrJaGsUdCmrkqXyKL7Oafjw2cbi1469692933750-atK3-cas', 'JSESSIONID': '00001cK6Y7jw_-BKbQurTgafkNz:19sdu3far', 'JSESSIONID_ids1': '0001R0uDUX4St3bctO6tzQxJ7Ly:CJEN9N8GG', 'MOD_AUTH_CAS': 'MOD_AUTH_ST-2238615-dtZU2RVaCfimEHKedCN61469692933851-H1xa-cas', 'iPlanetDirectoryPro': 'AQIC5wM2LY4SfcxjkJB4CLIYsgVtSJqVPPQKUCGv1v5CvGo%3D%40AAJTSQACMDE%3D%23', 'route': 'a1450b02a3bfbf6f5e1b74667a4bce88'}
获取有全部成绩记录的页面
r = session.get("http://eams.uestc.edu.cn/eams/teach/grade/course/person!historyCourseGrade.action?projectType=MAJOR");
解析成绩数据
table = []d = pq(r.text)
h = d(".gridtable:last thead tr th")c = d(".gridtable:last tbody tr")for tr in c: line = {} for td,i in zip(tr.getchildren(),h): line[i.text]=td.text.strip() table.append(line)
显示数据
for line in table: print "%s \t%.10s" % (line[u"课程名称"],line[u"最终"])
高级英语读写 74综合应用设计 I 90信息工程导论 87数据结构与算法 81嵌入式系统导论 83计算机组成原理与结构 63大学体育II 81信息检索与利用 83英国文学与文化 66应用数学基础 86MATLAB使用详解 90大学体育I 71软件工程基础 78概率论与数理统计 60政治经济学原理与实践 45哲学通论 78C语言程序设计 93线性代数与空间解析几何I 78数据库原理及应用 85大型机操作系统 80新生教育 89学术英语读写 83计算机网络基础 75美术鉴赏 91军事训练 80微积分I 73微积分II 68网球D 85操作系统基础 76形势与政策 87中国近现代史纲要 88空天信息技术概论 90通用英语 72军事理论 88思想道德修养与法律基础 85数字逻辑设计 76UNIX操作系统基础 89面向对象程序设计(java) 95大学物理Ⅰ 60综合C 68COBOL程序设计 81IT工程师职业基础 77
0 0
- 使用python爬取UESTC的信息门户
- Python-模拟登录UESTC信息门户
- 使用python爬取学校门户网站相关信息并格式化输出
- python网络爬虫学习(五) 模拟登陆北邮信息门户并爬取信息
- python3爬取使用BeautifulSoup爬取前程无忧的python招聘信息入库MongoDB!
- Python爬取信息的方法
- 使用python+selenium爬取学生信息并入库
- 使用Python爬取学校学生信息!(简单爬虫)
- windows下使用python的scrapy爬虫框架,爬取个人博客文章内容信息
- Python爬取网页信息时,经常使用的正则表达式及方法
- python爬取网页信息
- python 爬取淘宝信息
- Python爬取国家信息
- Python-爬取网页信息
- Python爬取天气信息
- python爬取网页信息
- python爬取的豆瓣top250的一些信息
- python爬虫爬取百度贴吧的信息
- 老男孩python第六期高级运维开发课程
- Android系统OTA升级流程
- 多线程 消费者与生产者 的问题 (线程同步)
- HelloChart--LineChartView(折线图)
- Adjusting to life abroad
- 使用python爬取UESTC的信息门户
- CentOS6.5安装配置Nginx1.11.5
- ionic之单选框
- Linux shell, 如何检查同一行中同时存在两个指定字串?
- dubbo各种管理和监管
- ActionBar的使用以及隐藏
- HelloChart--ColumnChartView(柱形图)
- 图解集合4:HashMap
- Xmind默认字体的修改方法