python使用request和bs4完成电子科大信息门户登录

大二的时候刚开始学的时候写的爬虫,突然翻出来再看的时候都忘了,于是心血来潮打算记下来:)

使用的库也比较基础,request和Beautifulsoup,python 3


基本的bs4语法文章中没有讲到,request略微提及,这个比较简单,用的都是基础的,自学很快就能学会。





第一步:具体思路

首先,我们需要有模拟自己登陆把用户名和密码提交给网页后台,一般来说提交的内容可以是一个字典形式,也可以是json形式的。这时候我们需要借助抓包软件来获取——到底需要上传一个什么形式的字典,内容除了用户名和密码还需要别的吗?

电子科大信息门户首页

如图是电子科大信息门户首页,输入用户名和密码才能登陆成功,我们知道request库里面有一个post的方法,用来提交表单数据(网页交互其实就是post数据和get数据的过程)然后学校服务器认证成功就登陆完成了。



其次,我们在登录成功后就需要找到一个有我们需要数据的网址,例如我想爬取自己的所有学年的成绩清单,http://eams.uestc.edu.cn/eams/teach/grade/course/person!historyCourseGrade.action对应的是电子科大的所有成绩网址(成绩不好隐藏一下=。=)

该网址显示的内容

至此就只剩下爬取相应内容了



第二步:实现过程

真正动手操作起来才能发现许多潜在的问题

首先我们需要知道上传的表单是什么样的,这里提供两种方法,去年自己用fiddler查看的,今年突然发现chorme自带也可以。

1.fidder


fiddler抓取的报文

第二种方法:chrome浏览器自带

按下f12键弹出chrome的开发者模式,点击上面标题栏的Network,然后先模拟登录一遍


注意看这个login页面对应的下面有个form Data(表单数据),里面其实就是我们提交给网页后天的信息。

通过多次比对发现除了用户名username和密码password,lt每一次登录都在变化,而剩下的值都是固定不变的。


通过搜索lt,我发现了这个数据的具体含义,lt可以理解成每个需要登录的用户都有一个流水号。只有有了webflow发放的有效的流水号,用户才可以说明是已经进入了webflow流程。否则,没有流水号的情况下,webflow会认为用户还没有进入webflow流程,从而会重新进入一次webflow流程,从而会重新出现登录界面。因此我们需要想办法保存登陆成功的cookie以便下次使用仍然能进入系统。

request.session()可以让同一个实例发出的请求具有相同的cookie。

操作过程:

1.准备好登录网址和成绩爬取网址


2.获取lt和准备上传的表单数据

我们在登录网址页面f12,crtl+f 搜索lt,发现lt对应在<input>中的value里面

用户名和密码填自己的即可

完成登录部分

至此我们可以先print输出一下


登陆成功

登陆成功,以及出现了笔者的名字。。源代码等同于这个登陆成功的页面

接下来直接登录那个爬取成绩的页面就行了。但是出现了一个问题。电子科大学校的网站经常会有这种情况,就是如果多方登录,就会有个弹窗页面显示重复登录,这时候经测试发现f5刷新页面即可。


但是webdriver可以模拟操作,request库最简单的方法就是重新get一遍该页面。【get两次】


get两次

现在已经成功进入成绩页面了,同样f12查看源代码,这里有个简单操作:同时按住ctrl+shift+c,然后鼠标放在你想要查询的元素位置那,网页会自动帮你定位到源代码的位置

我们发现所有的单科成绩都在table标签的tbody【页面id为grid18648965881_data】中。获取并print

爬取结果如下图所示,成功了嘻嘻

最后附上源代码


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

推荐阅读更多精彩内容