起因
公司要参加某个物联网展,展方为了宣传做了一个带拉票功能的宣传页,就是那种很常见的点开链接可以为自己支持的公司投票的那种。公司的前台姐姐把投票链接发到了群里,我很顺手的就投了一票,然后又顺手看了一眼网络请求:
投票动作是一个 POST 请求,请求体格式是 FormData,内容很简单
我就在群里说了一句:“好像可以刷票哦”,前台姐姐立刻给我安排了一波情绪价值:“哇,你好厉害哦”之类的。得了,这个活就算接下来了。
思考过程
- 先拿 PostMan 胡乱测了一下,同样的请求内容不能再发,服务端会报错:
您已经投票
看来是对同一 token
投同一 id
的频率做了限制了。
- 修改 id 可以投票成功,但是就投给别的公司了 =。=,这显然不符合需求。
- 修改
token
以后调接口会报错,看来必须使用服务端生成的 token
才行。
- 用手机打开链接,又可以投一次,看来没有账号绑定之类的机制,换了设备就能投。
- 手机和电脑都连的公司的 Wifi,看来也没有
IP
地址限制。
- 用电脑换了个浏览器也能投,看来没有设备指纹之类的东西,应该就是认浏览器。
- 在浏览器里到处找,发现
local_sotrage
存了个这个:
等号结尾,有点眼熟,base64解一下,果然和发请求的 token
对上了。
- 把这些乱七八糟的缓存都清了,重新打开页面,发现得到了一个新的
token
,又能投一票。
行了,路线通了,这下不会让前台姐姐失望了。
实现
本人不是 python 程序员,也没有什么爬虫经验,所有代码都是 AI 帮忙写的。
其实只有两个步骤,一个是打开浏览器获得新 token
:
然后就是投票:
然后定时投票就行了。
很小的案例,关键是又成功刷了一波好感度 =。=