最近模拟带账号登陆,查看了一些他人的博客,发现正方教务已经更新了,所以只能自己探索了。

登陆:

通过抓包,发现需要提交的值

需要值lt,这是个啥,其实他在访问登陆页面时就产生了

session=requests.Session()

response= session.get(login_url, headers=header)

cookies=response.cookiesfor c incookies:

cookie= c.name + ‘=‘ +c.value

print(‘cookie-get:‘ +cookie)

selector=etree.HTML(response.text)

token= selector.xpath(‘//input[@name="lt"]/@value‘)[0] # 解析出登陆所需的lt信息

print(token)

得到lt的值,加入到自己创建的表单中

根据上面抓包工具中需要的值,创建所需表单

login_data={‘useValidateCode‘: ‘0‘,‘isremenberme‘: ‘1‘,‘ip‘:‘‘,‘username‘: username,‘password‘: password,‘losetime‘: ‘30‘,‘lt‘: token,‘_eventId‘: ‘submit‘,‘submit1‘:‘‘}

post请求登陆:

response = session.post(login_url, data=login_data, headers=header)print(response.status_code)

我们成功了,哈哈哈,很开心!

进入了主页面:

这是我们登进的页面,要爬取成绩,成绩在教务系统中,细心观察

get下链接:http://******/xs_main.aspx?xh=***&type=1

response = session.get(main_url, headers=header)print(response.cookies)print(response.status_code)print(BeautifulSoup(response.text, ‘lxml‘))

response.status_code返回200,以为成功了?打印一下

额!难受,鬼刀一开,看不见........他竟然返回的是登陆界面?

究竟是什么问题呢,我怀疑是cookie:

因为

print(response.cookies)打印的值是:

浏览器访问抓包看下

啊嘞嘞,why?

查看其他请求,在Cookie中竟然都没有创建过ASP.NET_SessionID

那怎么办呢?

那我自己写一个吧:

requests.utils.add_dict_to_cookiejar(session.cookies,{"ASP.NET_SessionId":"0ftp4drb5uar0r55urffkobr"})

哎呀,成功了。开心,不过似乎ASP.NET_SessionId有时效性。

不管了,也不知道为啥Session.Cookies得不到所需要的Cookie,先不管了,各位大佬,发现问题的话,或者有啥好的解决办法麻烦告诉下!拜谢

代码地址:https://github.com/JackyWjx/HNCU

python3爬取教务系统_python requests模拟登陆正方教务管理系统,并爬取成绩相关推荐

  1. python爬取学校教务管理系统_python requests模拟登陆正方教务管理系统,并爬取成绩...

    最近模拟带账号登陆,查看了一些他人的博客,发现正方教务已经更新了,所以只能自己探索了. 登陆: 通过抓包,发现需要提交的值 需要值lt,这是个啥,其实他在访问登陆页面时就产生了 session=req ...

  2. 湖南工业大学教务系统爬虫(模拟登陆篇)

    湖南工业大学教务系统爬虫(模拟登陆篇) 之前写了一个教务系统的爬虫程序,可以根据用户要求爬取任何一部分的数据,也可以模拟提交数据,可能这也是部分工大计算机学生比较感兴趣的,所以今天就在这分享一下整个的 ...

  3. php模拟登陆,php实现模拟登陆正方教务系统

    本文主要介绍通过php的curl库实现正方教务系统的登陆,由于正方教务系统每年可能会有一些更新,因此本文是针对2018年而言,所介绍一些模拟登陆正方的方法,希望能帮助到大家. 1.保存登陆界面的验证码 ...

  4. php模拟登陆正方教务系统(2018年)

    php模拟登陆正方教务系统(2018年) 本文主要介绍通过php的curl库实现正方教务系统的登陆,由于正方教务系统每年可能会有一些更新,因此本文是针对2018年而言,所介绍一些模拟登陆正方的方法. ...

  5. Java--使用httpClient模拟登陆正方教务系统获取课表

    最近形如课程格子与超表课程表应用如雨后春笋般涌现,他们自动获取课程表是怎么实现的呢.于是我用Java实现了一下模拟登陆正方教务系统获取课表的过程. 首先,我们先了解一下网站登录的原理:当我们输入学号, ...

  6. Android 模拟登陆正方教务系统

    茂名职业技术学院官网新闻APP 这是一个使用jsoup爬取茂职院官网和正方教务系统信息的app. 采用viewpager+fragment+tablayout结构,支持下拉刷新和上拉加载. 主要功能有 ...

  7. java实现模拟登陆正方教务系统

    java实现模拟登陆学校教务管理系统 全部代码总览 此版本无注释,请赏脸移步本人GitHub:https://github.com/1243418950/Jwgl import java.io.Buf ...

  8. php模拟登陆正方教务管理系统(thinkPHP5.0)

    如果想书写一个爬虫,首先应该通过浏览器将你登陆时,本地与服务器之间的信息传递通过抓包的方式获得,然后通过编程语言去模拟这种信息传递. 首先在浏览器上登陆正方教务系统,用Fiddler进行抓包, 发现我 ...

  9. python输入学号返回成绩_Python模拟登陆正方教务系统并抓取成绩单

    学校的教务系统是正方的,在大学期间无论是选课.报名还是查成绩,几乎都要和它打交道,上学期在积累了一定的爬虫和web知识后,我就想着用Python模拟登陆教务系统,实现在命令行里方便地进行成绩或课表的查 ...

最新文章

  1. 如何使用ModelSim作前仿真與後仿真? (真oo无双前辈)
  2. c语言三个数按大小排列怎么编程,C语言三个数排列大小的实现方法
  3. oracle用户名密码过期引起的网站后台无法登录
  4. recycleview 使用详解,添加头部尾部,混合item,侧滑菜单,跳转到指定位置,实现九宫格布局
  5. Django:Django简介,MTV,Django常用命令
  6. 【Codeforces】Gym 101173B Bipartite Blanket 霍尔定理+状压DP
  7. python 数据分析 库_Python数据分析库
  8. Win8应用法律声明
  9. mysql数据库季度函数_数据库之MySQL函数(二)
  10. 前端vue导出excel
  11. 【书记舞】MMD动作+镜头+配音下载
  12. Unity接入华为SDK
  13. android内部dex解析,DEX文件解析---1、dex文件头解析
  14. 网络数据取证平台行业小调研
  15. python winrar 密码_python+winrar 指令压缩文件
  16. 二、从零开始学逆向之XCTF-logmein
  17. Python使用struct处理二进制(pack和unpack用法)
  18. android 自定义唤醒词,如何在Android上获得语音唤醒
  19. 从金融IT公司工作10年后转到银行的工作体会
  20. 魔兽worldserver.conf 服务端配置文件说明

热门文章

  1. 华为云新加坡峰会发布CloudAI创新实验室,四大核心优势助力智能化升级
  2. ios nstimer实现延时_iOS 中常见 Crash 总结
  3. js html转义字符串,js中html拼接特殊字符转义
  4. Spark之RDD理论篇
  5. 红橙Darren视频笔记setContentView源码分析 xml加载的过程
  6. 服务器网站管理页面打不开解决方法
  7. 机器学习十大经典算法之随机森林
  8. 轻量化网络MobileNet解析
  9. oracle 主键_mysql 组合索引带主键ID的问题
  10. python下载图片被覆盖了_Python OpenCV – 覆盖透明的图像