| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> 爬取教务管理系统成绩 -> 正文阅读 |
|
[Python知识库]爬取教务管理系统成绩 |
由于在学校期间没有重视学习,回家补了一段时间,想着用爬取本学校的教务管理系统自己的成绩来测试下成果。 完成步骤:
所用到的库有selenium,time和re 1.分析网站获取信息? ? ? ? 打开我们的教务管理系统: ?然后打开谷歌浏览器的F12开发者模式进行network抓包,随便填入账号密码来查看结果,我们的教务管理系统输入账号密码后是不需要输入验证码的,所以不用进行验证码处理。 在这里我们能够发现,输入了账号和密码之后,会发送出一个名为loginExt.action的post请求,在这个请求中可以查看到我们输入的账号密码,这里的pwd就是密码经过了前端加密,目前的学习还无法对这方面做出获取Cookie,所以使用selenium自动化的方法获取。 2.模拟浏览器进行登录并分析使用selenium之前需要先导入整个代码所需要的包:
通过selenium来获取Cookie:首先定位表单元素,我们对学号输入框进行右键元素检查获取,得到他们的Xpath路径: 右键再对右边方框中的Xpath进行复制,自动键入预定的数值就是我们的账号密码“username1”和“password1”,使用Keys.ENTER自动按回车登陆成功,附上代码:
?登陆成功后分析登陆页面: ?不难发现,我的成绩在 "首页" -> "我的" -> 点击"我的成绩"方可得到成绩,于是我们按步骤点进"我的成绩":
?经过分析页面得到了我们的具体成绩在页面的iframe里面,在这里我首先的想法是切换到嵌套的iframe里面再进行成绩的提取:
?但是切换到iframe页面后发现我们又回到了登录后的首页,在登陆后的首页无法找到具体成绩的元素,回过头再对上一步进入"我的成绩"页面进行分析,发现"我的成绩"里面有个href链接,于是点进去发现是一个单独的"我的成绩"页面,这个页面和之前的页面不同的是这个新"我的成绩"页面中使用F12查看具体成绩元素,元素不在嵌套的iframe界面中,那就可以直接提取了,狂喜!上面的切换到iframe也就无用了,在首页"我的成绩"节点下,拿到href链接,接着就是访问该链接,抓取该页面的源代码: ?
3.筛选数据获取成绩解析提取数据的时候也想着使用Xpath来,但失败了,发现这个页面的div属性值是每一次都不断变化的,基于自己的能力只能使用re对内容进行解析提取
得到想要的结果没有截全: 总结:没有进行相应的存储,代码也没有模块化,没有考虑异常情况,不过也算是成功了,弥补在学校天天打游戏所空虚度过的时间,这个检验还有些许不完善。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 1:31:08- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |