jq的模拟点击脚本实践---关于阿里月饼事件的一些思考

最近的阿里程序员利用脚本抢购月饼被开除的事成了大家茶余饭后的谈资。

其实不懂程序的人会感觉,哇,写后台脚本自动抢购,好厉害啊。

其实写一个js 的脚本并不难,今天就在这里跟大家分享下最简单的js脚本怎么写然后植入网页。

首先,先模拟一个抢购页面的网页,预设默认的时候有一个抢购按钮,但是是disabled,也就是不可点击状态。

5秒钟之后会变成可点击状态,并且变成高亮。

jq的模拟点击脚本实践---关于阿里月饼事件的一些思考_第1张图片
----->>
jq的模拟点击脚本实践---关于阿里月饼事件的一些思考_第2张图片

下面设置一个input来放置 此按钮被点击了多少次。(在不可点击状态的时候,用手点击按钮是没用的,input框没有变化。)但是变成可点击状态之后,点击次数会被显示。

jq的模拟点击脚本实践---关于阿里月饼事件的一些思考_第3张图片

以上就是仿抢购页面的逻辑。下面开始介绍脚本。只要把段脚本复制到浏览器的console控制台(摁F12可以显示浏览器的开发者工具)里再摁回车就可以执行了。页面也被上传到服务器上了,大家可以随意玩耍呦。

http://yangzhedi.github.io/html/rush.html

jq的模拟点击脚本实践---关于阿里月饼事件的一些思考_第4张图片

其实这个脚本很简单。原理就是开一个每XXX毫秒的定时器,定时器里执行一个按钮的模拟点击事件。

这里的$ 是默认此页面引用了jquery,如果以后抢购的页面没有引用jq的话,用原生的也是没问题的,只要把jq的封装函数API复制过来就行了。

setInterval 就是 设置一个定时器,后面的1000 是毫秒数,代表着每1000毫秒,执行一次定时器里的函数。

而$("#rush")就是获取一下抢购按钮的DOM节点,trigger() 方法触发被选元素的指定事件类型。

意义就是获取到抢购按钮,然后触发它的点击事件。

jq的模拟点击脚本实践---关于阿里月饼事件的一些思考_第5张图片

接下来是重点,如果,页面可以在本页面跳转,那么如果抢购button消失了,脚本找不到那个button的DOM节点,自然而然也没用了,但是如果页面不跳转 或者button还在,那么脚本就会一直执行。

正常的抢购页面,你抢购成功的话(跳过验证码,需要图像识别技术blabla)会跳转到付款页面。

但是如果请求堵塞,或者网站性能不好,崩掉了的话,就有可能不发生跳转(内网的抢购页面肯定不会写成淘宝天猫的那种高并发的了)这可能也就是为什么阿里的同学一下子不小心抢了那么多月饼的原因。(个人观点,不喜勿喷,欢迎私信讨论)

你可能感兴趣的:(jq的模拟点击脚本实践---关于阿里月饼事件的一些思考)