Python模拟登录高校URP教务系统

对于爬虫来说,需要爬取的信息如果需要登录才可以得到的话,那么我们就需要模拟登录。比如,登录教务系统才可以获取成绩。

目前国内高校除了使用自己开发的教务系统,部分高校还统一采用了正方教务管理系统、URP综合教务系统、青果教务系统等。

由于网上介绍正方教务系统模拟登录的文章很多、使用青果教务系统的高校比较少,所以今天介绍一下模拟登录URP综合教务系统。

[图片上传失败…(image-dfb514-1556438069195)]

下面是某校使用了十几年的URP综合教务系统登录页面。

《Python模拟登录高校URP教务系统》 image

[图片上传失败…(image-ff8709-1556438069195)]

打开浏览器的开发者工具,可以看到如下图所示的信息,比如请求地址、请求方法、请求状态、表单数据等。

《Python模拟登录高校URP教务系统》 image

得到这些信息,我们就可以模拟浏览器,使用请求地址、请求方法、表单数据进行模拟登录啦!

[图片上传失败…(image-ed7e52-1556438069195)]

直接上代码吧,注释很详细。首先引用了requests库,这是比较流行的第三方请求库,既然是第三方,就需要手动安装,安装命令百度一下。然后使用了类,尽可能让代码装得优雅(虽然就这么几行)~

# 导入requests库import requests# 登录类class Login(object):    # init 函数    def __init__(self):        # 请求头        self.headers = {            'Referer': 'http://xxx.xxx.edu.cn/login.jsp',            'User-Agent':            'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Mobile Safari/537.36',            'Host': 'xxx.xxx.edu.cn'        }        # 登录请求地址        self.post_url = 'http://xxx.xxx.edu.cn/loginAction.do'        # 验证码请求地址        self.yzm_url = 'http://xxx.xxx.edu.cn/validateCodeAction.do'        # 维持一个session        self.session = requests.Session()    # login函数    def login(self, account, password):        # 请求验证码并保存        with open("yzm.jpg", "wb") as f:            f.write(self.session.get(self.yzm_url, headers=self.headers).content)        # 暂时手动输入验证码        yzm = input("请查看当前目录下的验证码图片,输入验证码\n")        # 登录请求数据        post_data = {            'zjh': account,            'mm': password,            'v_yzm': yzm,        }        # 请求登录        loginResponse = self.session.post(self.post_url, data=post_data, headers=self.headers)        # 打印结果        print("状态码:" + str(loginResponse.status_code))        print(loginResponse.text)# 测试if __name__ == "__main__":    myLogin = Login()    myLogin.login(account='xxxx', password='xxxx')

[图片上传失败…(image-b3d5e7-1556438069195)]

运行程序,需要手动输入代码同级目录下储存的验证码,然后程序会输出本次请求的状态码和response内容。

《Python模拟登录高校URP教务系统》 image

[图片上传失败…(image-6174cb-1556438069195)]

这种网站模拟登录还是比较简单的。当然,如果有兴趣,可以继续拓展,引入第三方图片验证码服务或者自己研究图像识别处理验证码。

    原文作者:不谈风月_0eb8
    原文地址: https://www.jianshu.com/p/4a7355f5e915
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞