python实现xd一站式登录的3种方案

姓名:赵坤    学号:20021210734

【嵌牛导读】python语言由于其简洁、灵活的语言特性,经常被用来开发一些小工具来协助办公,爬虫就是其中广泛应用之一。网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。通俗的讲,爬虫就是能够自动访问互联网并将网站内容下载下来的的程序或脚本,类似一个机器人,能把别人网站的信息弄到自己的电脑上,再做一些过滤,筛选,归纳,整理,经过整合的数据往往能产生更大的价值。爬虫时,有的网站需要我们登录后才能访问关键信息,如淘宝,必须登陆后才能看到自己收藏的商品。因此如何完成登录操作是爬虫技术的重要一环,web通信中的登录,主要是通过cookie和session来进行确认的,今天我们就来分析一下xd一站式服务大厅的几种登陆方案。

【嵌牛鼻子】python实现xd一站式登录的3种方案

【嵌牛提问】还有其他登陆的方案嘛?

【嵌牛正文】如下:

一、如何判断我们是否登录成功?

可以使用如下网址进行验证:http://ehall.xidian.edu.cn/jsonp/userDesktopInfo.json  在登陆成功时,浏览器已经保存了认证我们信息的cookie,因此在浏览器url栏中输入该链接,可以请求到我们的个人信息(服务器认为这是一个合法请求)。

图一、正常登录状态下截图
图二、登陆成功时请求到的个人信息

如果是非登录状态下请求上述网页,则不会请求到任何数据,如下图所示:

图三、没登录状态下请求到的响应

接下来我们会在python代码中请求这个网页,如果能成功请求到数据,则说明我们已经保持了登录的状态。

二、方案一:获取浏览器cookie保持登录

正如前面提到的,当我们在浏览器中输入账号、密码,完成登录操作后,服务器会给浏览器返回一个cookie信息,来存储我们用户的身份,因此我们只需要获取到这个cookie,就可以在python代码中也保持登陆状态,欺骗过服务器。

浏览器中获取cookie的方式有很多,每个浏览器的操作也都大同小异,我们这里使用chrome进行展示。
1、首先成功登录进入教务处,如上述图一所示页面;
2、摁一下F12,唤起chrome的开发者工具,并点击进入Network标签下,勾选下图所示内容;

图四、没抓包时的devtools

3、如上提示所示,摁下ctrl+R,强制刷新页面,然后再抓到的包中,任选一个user开头的包,如我当前选取的是userSearchHistory开头的包,点击这个包,在response headers栏目下,复制出来其中的cookie信息即可。

图五、浏览器抓包获取cookie

4、python模拟发送请求,这里我们使用requests模块发送上述提到的http://ehall.xidian.edu.cn/jsonp/userDesktopInfo.json 请求,然后打印服务器返回的数据,看看其中是否包含了图二中展示的数据。

图六、数据请求代码

根据图七中的部分数据,我们可以看到的确和图二中的数据一致,成功请求到了我的个人信息数据,方案一讲解到此结束。

图七、部分返回数据截图

三、方案二:使用selenium完成模拟登录并获取cookie

Selenium简介:Selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla FirefoxSafariGoogle ChromeOpera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。支持自动录制动作和自动生成 .NetJavaPerl等不同语言的测试脚本。

selenium和chrome driver安装教程 ---没有安装的朋友可以参考这篇文章进行环境配置

从上面的介绍可以知道,使用selenium实现登录就是我们在python程序中预先制定好浏览器的操作流程,比如访问什么网页,需要点击什么按钮,在什么位置、什么时间输入什么内容等等,实际上就是用代码复现人类真实的与浏览器交互的行为,代码如下。

图八、数据请求代码
图九、模拟浏览器执行动作过程

可以看到我们使用selenium也是成功获取到了全部的cookie信息和最终要的个人数据。

图十、执行结果分析

四、方案三:使用http协议实现 post 登录并逆向加密js

1、对教务处发起登录的请求进行抓包分析,发现登陆时提交的参数一共有如下7个,其中password是经过加密的,It根据经验知道是服务器返回的一串标识符,一般存在于网页源码中,后面四个参数都是固定不变的,因此我们只要找到password和It就可以了。

图十一、登录抓包结果

2、经过在网页源码中寻找,我们定位到了如下内容,都是隐藏的input标签,可以看到It在其中,并且其余的四个登陆相关参数也在其中。多次刷新网页之后也可以验证我们之前说的,It是变动的,而其余四个字段是不变的,不过我们还发现了一个不曾见到的字段“pwdDefaultEncryptSalt”,根据经验知道这是加密算法需要的“盐”。

图十二、网页源码分析

3、接下来就只剩password加密算法的定位了,在devtools中搜索password字段,成功定位到可能存在加密的位置,并且看到了加密算法AES,而且前面提到的pwdDefaultEncryptSalt也在此处得到了应用,猜测应该是这里了。

图十三、加密位置定位

4、重新发送一次登录请求,看能否在此处断下来,果然断下来了,只不过走的是下面的流程,经过验证后_p1的确是前面猜测pwdDefaultEncryptSalt参数,_p0是我们输入的密码123456。接下来只需要解这个加密算法即可,跳到这个AES加密算法定义的位置看看。

图十四、断点效果

5、跳到了这个文件中,可以看到用的是标准的croptyJS加密的,那我们就不用扣代码了,直接在py中调用crypto库就可以了---实际上这个代码也非常的好扣,直接整个文件拿下来就可以了。

图十五、AES加密算法定位

6、由于使用post协议登录这部分极可能被滥用,为了不给教务网站维护者造成困扰,这部分代码就不公布出来了,按照以上思路来做是可以正常实现登录的。希望以上分享大家能喜欢,谢谢大家看到这里。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,607评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,239评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,960评论 0 355
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,750评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,764评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,604评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,347评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,253评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,702评论 1 315
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,893评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,015评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,734评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,352评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,934评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,052评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,216评论 3 371
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,969评论 2 355

推荐阅读更多精彩内容