Python爬虫实践(10):实例2教务系统登录

来源:互联网 发布:新速特软件站下载 编辑:程序博客网 时间:2024/04/29 16:59


打开登录首页,表面上,我们的url应该是:http://grdms.bit.edu.cn/yjs/login.jsp


按F12,查看页面元素如下图:



看到提交方式为post,action后边接的应该是我们提交用户名密码的网站,猜测是:http://grdms.bit.edu.cn/yjs/login.do

为了验证猜想,登录之后F12查看network:




这个才是我们所需要的URL


继续下拉查看需要传入的数据,可以看到需要传入用户名密码,分别是:`j_username:`和‘j_password’:



其他两个,loginType 和Submit 通常来说也需要写,但是由于学校使用的这个什么 iframe 比较变态,即使写了也得不到完整的HTML源码。写和不写效果一样。如果要写,这个Submit 由于编码问题无法显示,其实这就两个选项:‘登 录’和’重 置‘,在登录界面查看源码可以看出:




好了,上代码:

# _*_ coding:utf-8 _*_import urllib2import urllibimport cookielibimport reclass BIT:    def __init__(self):        self.loginUrl = 'http://grdms.bit.edu.cn/yjs/login.do'        self.cookies = cookielib.MozillaCookieJar()        self.post_data = urllib.urlencode({            'j_username': '222XXXX',            'j_password': 'XXXX',        })        self.opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(self.cookies))    def get_page(self):        request = urllib2.Request(            url=self.loginUrl,            data=self.post_data,        )        result=self.opener.open(request)        # 打印登录内容        print result.read().decode('gbk')bit=BIT()bit.get_page()

运行结果:


登录之后的页面只有这么点东西,而自己如果在登录之后的页面审查元素,则会出现比这多得多的代码。

本以为模拟Cookie登录失败,但是其实这已经是成功登录了,此时如果用Cookie打开一个页面,比如成绩查询页面,是能够成功打开的但是扒下来的代码为什么这么少,这是个难点。

iframe这东西值得深究

0 0