python模拟正方教务系统登录

目录

一、抓包检查请求信息

进入教务系统首先随便输一个号进行抓包,发现default2.axps包是使用post请求

在该文件下找到标头和负载信息

_VIEWSTATE:

txtUserName:学号信息

TextBox2:账号密码

txtSecretCode:验证码

RadioButtonList1:身份信息

Button1:

lbLanguage:

hidPdrs:

hidsc:

二、过程 

 准备获取cookies和_VIEWSTATE值做请求标头和负载的数据

 构建post的提交表单和请求头

打印print(response.text)会得到返回的登陆成功的网络源码

 

 三、总结

标头的构建

cookies获取

验证码识别

模拟提交数据


 

一、抓包检查请求信息

 

a1782a4e09b54cec96654a91e0280674.png

 

进入教务系统首先随便输一个号进行抓包,发现default2.axps包是使用post请求

需要注意的是,这个文件有两份,一个是get请求,一个是post请求。

post请求的文件需要你提交登录一下才会出现,你可以随便输入一个错误账号密码和验证码去登录刷新获得这个文件。 

08c88c209d8d4d0c992f3e145d2bfda1.png3102d6db9aaa496f94464ee71251c639.png

在该文件下找到标头和负载信息

b1eecce23f3e45de8ea61dbf0e4bb85a.png

  1. _VIEWSTATE:

    是在网页源代码中可以找到它的值vavle8fd8f4eb523d4fa683e285c581d98a7b.png

  2. txtUserName:学号信息

  3. TextBox2:账号密码

  4. txtSecretCode:验证码

  5. RadioButtonList1:身份信息

  6. Button1:

  7. lbLanguage:

  8. hidPdrs:

  9. hidsc:

二、过程 

 准备获取cookies和_VIEWSTATE值做请求标头和负载的数据

import requests
import re'''创建session环境'''
session = requests.session()'''初次登录获取viewstste和cookies'''
url = '教务系统url'
r = session.get(url)'''用正则表达式获取viewstste'''
viewstste = re.findall('<input type="hidden" name="__VIEWSTATE" value="(.*?)" />', r.text)'''获取cookies值'''
'''获取cookies函数'''
def get_cookies(url,session):cookies_1 = requests.utils.dict_from_cookiejar(session.cookies)#此处是从session中获取cookies,由于返回值是一个集合形式,所以在下方需要用字符串拼接方式获得完整的cookiescookies = 'ASP.NET_SessionId=' + cookies_1['ASP.NET_SessionId']print('自定义函数cookies:',cookies)#打印一下检查是否有问题return cookies
cookies = get_cookies(url, session)

通过抓包可以得知checkcode.aspx是验证码获取的包,正方教务系统的验证码是随机的,点开该包的url会发现验证码会变化,跟显示的不一样,且每一次点击所显示的验证码都不同,所以获取验证码且保证验证码可以正常使用,该请求的cookie就要与提交的表单的cookies要统一

构建headers,将抓的包checkcode.aspx的请求标头复制下来

423a55143283401c93e0faa0b8b9e93b.png

  

'''创建请求头'''
checkcode_headers={'Accept': 'image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6','Connection': 'keep-alive','Cookie': cookies,   #上方获取的cookies值'Host': '根据实际情况获取','Referer': '根据实际情况获取','User-Agent': '根据实际情况获取'}

此处要说明的是Ddddor这个包 在(亲测好用便捷)Python通用验证码识别OCR库ddddocr的安装使用教程https://blog.csdn.net/qq_50058672/article/details/126123778?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167880136716800182112448%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=167880136716800182112448&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-126123778-null-null.142%5Ev73%5Ewechat,201%5Ev4%5Eadd_ask,239%5Ev2%5Einsert_chatgpt&utm_term=ddddorc&spm=1018.2226.3001.4187

这篇文章有介绍,可以阅读一下,此处只用了部分代码解决需求 

from ddddocr import DdddOcr'''创建ddddocr环境获取验证码'''
ocr = DdddOcr() #创建环境
checkcode_url = 'http://根据实际情况填写此行/CheckCode.aspx'
img = session.get(checkcode_url, headers=checkcode_headers)#发起请求获得验证码的图片
checkcode = ocr.classification(img.content)#识别验证码

 构建post的提交表单和请求头

 该post请求可以在

edc54f8f0715494ba98f02111833c9e3.png

找到。 

xh='你的教务系统账号'
pw='你的密码''''发起post请求初次登录'''
log = {'__VIEWSTATE': viewstste[0],#viewstste为列表,此处需要值,则需要提取出第一个元素'txtUserName': xh,'TextBox2': pw,'txtSecretCode': checkcode,'RadioButtonList1': '%D1%A7%C9%FA',#身份的编码,此处编码意思为学生'Button1': '','lbLanguage': '' ,'hidPdrs': '','hidsc': '',
}
headers_post = {'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7','Accept-Encoding': 'gzip, deflate','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6','Cache-Control': 'max-age=0','Connection': 'keep-alive','Content-Length': '192','Content-Type': 'application/x-www-form-urlencoded','Cookie': cookies,'Host': '根据实际情况填写','Origin': '根据实际情况填写','Referer': 'http://根据实际情况填写/default2.aspx','Upgrade-Insecure-Requests': '1','User-Agent': '根据实际情况填写'
}
post_url = 'http://根据实际情况填写/default2.aspx'
response = session.post(post_url, data=log, headers=headers_post)

打印print(response.text)会得到返回的登陆成功的网络源码

e7b920cc92f14e479da9b30e7743c67b.png

此时就已经模拟登录成功了

 

 三、总结

标头的构建

cookies获取

验证码识别

模拟提交数据

注意:此文章只作学习了解,爬虫有风险,学习需谨慎

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/68433.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

万豪历经多次数据泄露仍无改观,漏洞百出令消费者担忧

今年&#xff0c;无论是酒店还是航空都是遭受新冠病毒疫情打击最为严重的行业&#xff0c;同时这些行业也是网络安全的重灾区。万豪集团等多家航空公司近年多次曝出数据泄露事件并付出惨重代价&#xff0c;但研究发现仍存在高危风险&#xff0c;数据安全问题似乎仍无任何改观。…

走点心学好设计模式,还做什么 Crud Boy

最近总有读者在后台跟我说&#xff0c;工作几年&#xff0c;自己的代码质量似乎没有什么提升。我觉得他的情况非常典型&#xff0c;很多人应该或多或少都有过类似的经历&#xff1a; 毕业几年&#xff0c;几乎一直在做复制黏贴的工作&#xff1b;偶尔会遇到原有业务扩展的需求&…

网络安全学习常用站点导航-持续更新中

整理了下常用的网站&#xff0c;方便查找&#xff0c;持续更新中&#xff0c;欢迎补充 文章目录 安全论坛知识库其他导航网站&#xff08;套娃&#xff09;靶场CTF平台漏洞复现 SRC空间测绘漏洞信息威胁情报指纹识别 安全论坛 先知安全客创宇PaperFreebuf&#xff0c;酒仙桥六…

因程序员开发速度太慢,公司索赔90万败诉后不服申请再审,法院判了

整理 | 王晓曼 出品 | 程序人生 &#xff08;ID&#xff1a;coder _life&#xff09; 2019年9月10日&#xff0c;北京神州瑞景公司因不满公司某程序员的工作进度和质量&#xff0c;申请了劳动仲裁。同日&#xff0c;北京市朝阳区劳动人事争议仲裁委员会表示不予受理&#xff0c…

朱松纯:三读《赤壁赋》,从人工智能的角度解读“心”与“理”的平衡

朱松纯 北京通用人工智能研究院院长 北京大学讲席教授 清华大学基础科学讲席教授 目录 第一节 引言 人生轨道&#xff1a;跃迁与升华苏轼的哲思&#xff1a;人生的意义什么是活明白当今学子的困惑 第二节 初读文学《赤壁赋》&#xff1a;横槊赋诗 第三节 重读学术《赤壁赋》…

因程序员开发速度太慢,公司索赔 90 万败诉后不服申请再审,法院判了

2019 年 9 月 10 日&#xff0c;北京神州瑞景公司因不满公司某程序员的工作进度和质量&#xff0c;申请了劳动仲裁。同日&#xff0c;北京市朝阳区劳动人事争议仲裁委员会表示不予受理&#xff0c;认为神州瑞景公司的请求事项不符合受理条件&#xff0c;决定不予受理。 神州瑞景…

入职半年后,我升到了管理岗

18年&#xff0c;我创业失败后&#xff0c;准备重新找工作。 通过朋友介绍&#xff0c;还没开始找&#xff0c;就入职了vivo&#xff0c;这应该算是我职场史上最快的找工作经历了。 因为做开发的年限也四五年了&#xff0c;所以&#xff0c;我本想利用这个机会转管理岗的&…

亚马逊用了12年,却只推出漏洞百出的Goodreads…

全文共3919字,预计学习时长8分钟 来源: bookriot.com Goodreads是最大的文学社交媒体网络。它本应是一个很好的读者聚集地。它是一个只有读书爱好者的在线社区,但是根据用户的投诉,以及基本的调查结果显示,Goodreads这种明显的垄断性服务似乎阻止了其创新。结果 ,它没有为…

iOS8升级漏洞百出 苹果首席“捉虫师”难逃其咎

苹果日前为iPhone与iPad升级操作系统时&#xff0c;似乎遇到许多漏洞。升级为iOS 8.0.1后&#xff0c;许多用户无法打电话、无法使用Touch ID和指纹传感器等&#xff0c;几乎导致苹果取消更新。 如果苹果CEO蒂姆库克(Tim Cook)要为这些失败找个责任人&#xff0c;高级工程师金沃…

财报漏洞百出前后不一,大烨智能是“粗心大意”还是“欲盖弥彰”?

“【报名】数据猿年度精彩活动推荐&#xff1a;访谈调研企业盘点榜奖峰会&#xff0c;与数据猿共筑2021 大数据产业创新服务媒体 ——聚焦数据 改变商业 近日&#xff0c;大烨智能发布了2021年第一季度报告。截止报告期内&#xff0c;大烨智能实现营收为60,285,025.47元&#…

20 | WAF:如何为漏洞百出的Web应用保驾护航?

如果你细心观察的话&#xff0c;应该会发现&#xff0c;随着 Web 应用越来越多&#xff0c;黑客的攻击目标也逐渐转向了针对 Web 安全的攻击。传统的防火墙主要专注于网络层的攻击防御&#xff0c;对 Web 安全的防御能力相对欠缺。因此&#xff0c;WAF&#xff08;Web Applicat…

!大部分程序员只会写3年代码

程序员与别的专业有所不同&#xff0c;其他专业都是越老越香&#xff0c;而程序员却是一个例外&#xff0c;因为计算机技术更新太快&#xff0c;而且工作强度很大&#xff0c;因此大部分程序员只会写 3 年代码。3 年后要不晋升做项目经理&#xff0c;要么转行&#xff0c;个别研…

Qt之QGraphicsView实现截图(漏洞百出且BUG丛生版,部分源码+注释)

文章目录 一、截图操作示例图1.图元绘制示例2.文本添加操作示例3.设置操作示例4.截图拖动示例5.文件保存示例6.剪切板粘贴示例 二、内容指路和思路三、部分源码1.自定义文本框源码2.多类型图形数据的存储3.截图源码 总结相关文章 一、截图操作示例图 1.图元绘制示例 下方一次…

这可能是解决你Spring MVC接口漏洞百出的关键

1. 前言 在 Java 开发中接触的开发者大多数不太注重对接口的测试&#xff0c;结果在联调对接中出现各种问题。也有的使用 Postman 等工具进行测试&#xff0c;虽然在使用上没有什么问题&#xff0c;如果接口增加了权限测试起来就比较恶心了。所以建议在单元测试中测试接口&…

由苹果的低级Bug想到的

前段时间的问题&#xff0c;本来想写篇文章说说代码规范&#xff0c;code review相关的&#xff0c;不过看到果壳已经有篇很棒的文章&#xff0c;借来放在这里&#xff0c;也是对自己的指导。果壳很好&#xff0c;里面的文章都很有很有含金量&#xff0c;建议大家都收藏起来 原…

关于人工智能不会使大脑变懒惰的议论文_台湾人工智能学校执行长陈升玮:孩子成为这型人,就不怕被AI取代...

陪伴每个父母和小孩&#xff0c;成为更好的自己。 搜寻公众号 "亲子天下"(微信 ID&#xff1a;cn-parenting)关注 世界经济论坛〈工作大未来〉报告二○一六年的预测&#xff1a;二○二一年全世界会产生两百万个新工作&#xff0c;但随着人工智能(AI)兴起&#xff0c;…

关于人工智能不会使大脑变懒惰的议论文_人工智能的好处和风险:所有您需要知道的...

​ 人工智能不是想象中的未来。现在,在我们的搜索引擎中,人工智能不仅仅是自动完成,也不仅仅是自动驾驶汽车。从机器学习到机器人,人工智能为我们提供了多种技术,使机器能够感知,理解,学习和行动。 是否考虑将绝佳的AI机会纳入您的业务?在您做出决定之前,这里有一些AI…

有可以模拟钢琴弹奏乐曲的手机软件吗?

我们常常喜欢抱着手机做很多有趣的事。其实现在的智能手机真的可以做很多以前意想不到的事。像是手机里有可以模拟钢琴弹奏乐曲的手机软件&#xff0c;钢琴键盘模拟器很有趣。所以很受年轻的小伙伴欢迎。今天我就在这里和大家分享一下&#xff0c;可以模拟钢琴弹奏乐曲的手机软…

普通计算机可以演奏音乐吗,用电脑演奏的音乐还是音乐吗?

现代电子科技迅猛发展&#xff0c;很多作曲家都用电脑作曲&#xff0c;非常方便&#xff0c;就是演奏的时候也能交给电脑负责&#xff0c;合成多个音轨&#xff0c;演奏出复杂的音乐作品。那么&#xff0c;用电脑演奏的音乐还是音乐吗&#xff1f; 当然是音乐。电脑可以负责人脑…

freepiano 手残党也想弹钢琴(在电脑上弹奏电子钢琴自娱自乐,也许还是有点困难,不如试试freepiano+鼠标宏,这样用简谱就不怕残疾了)

我不懂五线谱&#xff0c;勉强能看看简谱&#xff0c;喜欢音乐&#xff0c;但又手残玩不好乐器&#xff0c;像是钢琴电子琴都是双手一起像打键盘一样弹右手位&#xff0c;没法自己搞伴奏&#xff0c;吉他也按不住大横按的和弦&#xff0c;简直没有音乐细菌。 自己想玩吧&#…