jq获取input选取的文件名_用Python查询成绩|(二)模拟登录教务网并获取成绩

前言

av8d大家好鸽了几个月的我又回来了!

在上一篇用Python查询成绩|(一)网络爬虫基础知识中我大概的讲了一下网络爬虫的基础知识,这一篇就有干货了啊,直接开始模拟登录教务网。

本篇内容

  • 1, 用 Python 模拟登录教务网

  • 2, 获取成绩

以下代码均可以在我的 Github 上找到:

https://github.com/DuChuan19/NkemisScoreSpider

免责声明:本文仅供学习交流,如出现任何法律问题本人概不负责!

用 Python 模拟登录教务网

整体思路

1,向登录界面发送登录请求,POST 一系列参数,包括账号、密码等,获得响应,提取一些关键参数

2,得到参数重新发送登录请求,POST 参数之后即可登录

第一次向登录界面发送请求

第一次向登陆页面发送请求,是为了看看需要 POST 哪些参数,光提交账号密码是肯定不行的。

334e881f80e009f8a82d523ac7f97411.png
1.png

这里可以看除了账号密码还有另外的四个参数,分别是__VIEWSTATE 、__VIEWSTATEGENERATORImageButton1.xImageButton1.y,前两个经过分析可以在登录页面找到

c3b39019c81d3ccef9a1135b3e376999.png
2.png

我们可以通过 requests 的 get 方法得到

后面两个应该是登录按钮的位置

99d0cb702095cf3d0f1aed18613df47e.png
3.png

然后可以通过以下代码来得到需要的参数,账号密码可以手动输入

 1

第二次向登录界面发送请求

这次请求需要包含以上获得的参数,不然没法得到正确的响应

直接来看代码:

1session = requests.session()

关于 session 的详细说明以及用法,可以访问官方文档进行查看

这里我大概的说一下

requests 库的 session 对象能够帮我们跨请求保持某些参数,也会在同一个 session 实例发出的所有请求之间保持cookies

所以我们发送了带有登录参数的数据,如果参数正确,就能登录成功了

0ea7c45b97989931116ee24d83ce64f8.png
4.png

获取成绩

成功登录教务网之后,接下来便是获取成绩了

我们需要获取的数据只有两个,课程标题以及对应的总评成绩

这里有两种方法,一种是通过正则表达式来获取,另一种是用 pandas 库

用正则表达式来获取成绩

8c1b3ae0e36e7f58c348cd1d14839822.png
5.png

可以看到,课程名称和总评成绩都包含在 tr 标签下

为了方便看,我把课程名称和总评成绩分开写

1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值