wuye4 发表于 2024-3-14 21:54

【python】requests库 让世界再无难看的课(上)

本帖最后由 wuye4 于 2024-3-16 17:03 编辑

本次介绍的是一个公共课的学习网站,通过requests库模拟用户发出的请求达到课程的迅速观看。

打开浏览器控制台进入目标网站尝试登陆发现
[!(https://s21.ax1x.com/2024/03/14/pFgYmmF.png)](https://imgse.com/i/pFgYmmF)
发现网站没有对密码进行加密cookie无明显变化直接使用以下代码保存cookie

`import requests`
`requests = requests.session()`

登陆后查看课程,在控制台搜索开始学习   

[!(https://s21.ax1x.com/2024/03/14/pFgYuTJ.png)](https://imgse.com/i/pFgYuTJ)
[!(https://s21.ax1x.com/2024/03/14/pFgYnw4.png)](https://imgse.com/i/pFgYnw4)

发现前方有个href标签包含地址,其中id和cid这两个参数很重要(后面会用到)点开始学习后会进入到课程页面

[!(https://s21.ax1x.com/2024/03/14/pFgY3Sx.png)](https://imgse.com/i/pFgY3Sx)

打开F12控制台找到对应链接,我们会发现所有的视频链接都是以这中形式存在。其中有参数id,sid,mid,courseclassid,以及chapterid。

[!(https://s21.ax1x.com/2024/03/14/pFgYZOU.md.png)](https://imgse.com/i/pFgYZOU)

然后我们点击视频,进入视频页面

[!(https://s21.ax1x.com/2024/03/16/pF2GrYn.md.png)](https://imgse.com/i/pF2GrYn)

打开F12控制台,随着视频的观看发现请求了一个网址

[!(https://s21.ax1x.com/2024/03/14/pFgYQYR.md.png)](https://imgse.com/i/pFgYQYR)

[!(https://s21.ax1x.com/2024/03/14/pFgYMk9.md.png)](https://imgse.com/i/pFgYMk9)

不难发现其中的参数和上面id,sid,mid,courseclassid,以及chapterid对应。响应的值为

[!(https://s21.ax1x.com/2024/03/14/pFgYlf1.png)](https://imgse.com/i/pFgYlf1)

写出代码

`headers = {`
`'authority': 'wrggk.whvcse.edu.cn',`
`'accept': '*/*',`
`'accept-language': 'zh-CN,zh;q=0.9',`
`\# 'content-length': '0',`
`'origin': 'https://wrggk.whvcse.edu.cn',`
`'referer': 'https://wrggk.whvcse.edu.cn/Viewer/CoursePlay.aspx?class=0&id=1080&sid=14210&mid=63365&courseClassId=831&chapterId=14203',`
`'sec-ch-ua': '"Chromium";v="122", "Not(A:Brand";v="24", "Google Chrome";v="122"',`
`'sec-ch-ua-mobile': '?0',`
`'sec-ch-ua-platform': '"Windows"',`
`'sec-fetch-dest': 'empty',`
`'sec-fetch-mode': 'cors',`
`'sec-fetch-site': 'same-origin',`
`'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36',`
`'x-requested-with': 'XMLHttpRequest',`
`}`

`params = {`
`'cpid': '63365',`
`'bjtime': '59.978762',`
`'courseid': '1080',`
`'stepid': '63365 ',`
`'courseClassId': '831',`
`'t': '60',`
`}`



`response = requests.post('https://wrggk.whvcse.edu.cn/Viewer/timetop.aspx', params=params, headers=headers)`

结果:成功

wuye4 发表于 2024-3-17 16:17

本帖最后由 wuye4 于 2024-3-17 16:19 编辑

wuye4 发表于 2024-3-15 10:06
下期更新网课考试秒满分分析
下期视频已更新
【python】requests库 让世界再无难看的课(下)
https://www.52pojie.cn/thread-1901991-1-1.html
(出处: 吾爱破解论坛)

wuye4 发表于 2024-3-15 10:06

下期更新网课考试秒满分分析:victory:

AgnesW 发表于 2024-3-14 22:34

大佬学到了。不过这可不兴跳过啊{:1_918:}

xoyi 发表于 2024-3-14 22:35

温馨提示,新手pip时候别下成request库了:Dweeqw
是requests

wuye4 发表于 2024-3-14 22:44

AgnesW 发表于 2024-3-14 22:34
大佬学到了。不过这可不兴跳过啊

谁不想快速的跳过呢:lol

zhouzhou520 发表于 2024-3-14 23:15

这个是本地每60s,提交一次请求吗?如果是的话,再加一个循环玩儿

wuye4 发表于 2024-3-14 23:22

zhouzhou520 发表于 2024-3-14 23:15
这个是本地每60s,提交一次请求吗?如果是的话,再加一个循环玩儿

是的,但是这个bjtime参数可以自己填久一点,它这个服务器好像不会校验,填了多久就提交多久。

zhouzhou520 发表于 2024-3-14 23:25

wuye4 发表于 2024-3-14 23:22
是的,但是这个bjtime参数可以自己填久一点,它这个服务器好像不会校验,填了多久就提交多久。

好家伙,那这个很好玩啊,用Python获取到视频的总时长,然后传参到这个参数里,爽,哈哈

宁财神到 发表于 2024-3-15 00:17

我来学习下

libecho 发表于 2024-3-15 00:29

学习一下

a120123 发表于 2024-3-15 01:50

感谢楼主无私分享!
页: [1] 2 3 4 5
查看完整版本: 【python】requests库 让世界再无难看的课(上)