本篇目标
1.模拟登录学生成绩管理系统
2.抓取本学期成绩界面
3.计算打印本学期成绩
1.URL的获取
先贴一个URL,让大家知道学校学生信息系统的网站构架,主页是http://jwxt.sdu.edu.cn:7890/zhxt_bks/zhxt_bks.html,用了frame,一个多么古老的而又任性的写法,我们点到登录界面,审查一下元素,先看看登录界面的URL是怎样的?看到了右侧的frame名称,src=”xk_login.html”,可以分析出完整的登录界面的网址为http://jwxt.sdu.edu.cn:7890/zhxt_bks/xk_login.html,点进去看看,用浏览器监听网络。
用猎豹浏览器,审查元素时会有一个网络的选项,如果大家用的Chrome,也有相对应的功能,Firefox需要装插件HttpFox,同样可以实现。
这个网络监听功能可以监听表单的传送以及请求头,响应头等等的信息。大家看到的是登录之后出现的信息以及NetWork监听,显示了hearders的详细信息。最主要的内容,我们可以发现有一个表单提交的过程,提交方式为POST,两个参数分别为stuid和pwd。
请求的URL为http://jwxt.sdu.edu.cn:7890/pls/wwwbks/bks_login2.login,没错,找到表单数据和目标地址就是这么简单。
在这里注意,刚才的 http://jwxt.sdu.edu.cn:7890/zhxt_bks/xk_login.html 只是登录界面的地址,刚刚得到的这个地址才是登录索要提交到的真正的URL。希望大家这里不要混淆。
不知道这个系统有没有做headers的检查,我们先不管这么多,先尝试一下模拟登录并保存。
2.模拟登录
通过以上信息,我们已经找到了登录的目标地址为 http://jwxt.sdu.edu.cn:7890/pls/wwwbks/bks_login2.login
有一个表单提交到这个URL,表单的两个内容分别为stuid和pwd,学号和密码,没有其他的隐藏信息,提交方式为POST。
现在我们首先构造以下代码来完成登录。看看会不会获取到登录之后的提示页面。
__author__ = 'CQC'
# -*- coding:utf-8 -*-
import urllib
import urllib2
import cookielib
<