手把手之如何写一个抢课脚本
共 1188字,需浏览 3分钟
·
2021-03-02 22:28
大家好,我是菜鸡q,大家好久不见!
故事的起因是由于群里有人通知马上要选下学期的课了,鉴于第一学期立志认真上课的我头铁选了几门巨难的课后,到学期中由于真的听不懂后索性懒得去上课,所以我决定下学期就选几门水课!
经过多方打听,水课名单get后,我定好下午三点的闹钟,摩拳擦掌准备抢课。
结局当然是:秒杀从未成功的我,失败次数++
痛定思痛,咱一个计算机科班的写个抢课脚本他不香吗?
有关注茅台的朋友们也许了解到最近火爆的京东抢茅台脚本在github上异军突起,那么今天让我们一起看下此类秒杀脚本背后的原理吧。
我们先说结论:本质上就是模拟一个请求,举个例子,我们在百度上搜索关键词,如在百度搜索框上输入【NBA】,则浏览器会将我们的请求(带有关键词NBA)发到百度服务器,服务器拿到关键词后,返回给所有带有NBA信息的搜索结果。
同样的,当我们在秒杀茅台页面点击购买,在选课页面点击选课,都是将带有特定功能的数据包发到对方服务器,随后得到反馈:秒杀成功。
当然机智的你一定会有疑问,京东的服务器是怎么知道这个商品是你买的呢?
答案就是我们平常发过去的数据包里有个信息叫cookie,经过层层加密后他会带有我们的个人信息,这样服务器拿到cookie后对应解密就能分辨请求是谁发的了。
那么回到主题,如何写一个抢课脚本呢?
-
通过抓包工具找到我们抢课的请求接口 -
用python的requests库发送该请求
具体操作如下
打开浏览器F12,随便选个课,点击选课,抓到包如下:
将url以及headers复制进脚本,随后伪代码如下:
import requests
data = requests.post(url, headers=headers)
好了,经过一番操作后,我已经将脚本部署上就等哪个老哥退课了。
本文的源代码已上传到GitHub, 点击阅读原文一键直达~
——END——
扫码二维码
获取更多精彩
老肥码码码