两年前的中秋节,阿里巴巴四个程序员编写了段网页脚本,抢了公司一百多盒月饼而惨遭辞退。有人说阿里小题大做,有人说诚信第一,那时我在想他们是如何做到的呢?上个月,二组群里讨论Python编程,我忽然想起了抢月饼事件。问了一圈群里没人做过,董书云战友鼓励我:想做就去学,一定可以学会的。一拖再拖,这周终于开启了学习。
搜索发现网络上已经有不少解决方法,但思路基本一致:利用浏览器插件实现代码注入。浏览器编程语言为JavaScript(JS),与我熟悉的C语言相差挺大,在Kindle下载了三本相关的书,快速了解了JS的基本规则。按照网络教程,学会了谷歌(Chrome)浏览器简单扩展程序的开发。这样就掌握了编写自动抢购脚本的最少必要知识。然后,最好的办法就是行动起来,去做,去犯错吧。
我这次要写的这个脚本其实很简单,就是让程序自动点击抢购页面上的按钮,开发步骤如下。
1.设置一个抢购页面
第一步是做一个抢购页面,供脚本使用。代码如下图所示,将其保存为html文件。
抢购页面html代码页面显示十分简陋,最重要的是设置的“点我抢购”按钮。
抢购页面正常情况下,用户通过点击按钮参与到购买活动,拼的是手速。很多时候,我们并不知道也许自己竞争的对手是机器。利用脚本在满足条件的一瞬间(到预定时间等)迅速出击,制造出秒杀、秒光的场景。
2.写一个自动触发程序
开发一个简单的谷歌浏览器扩展程序,配置如下图所示,将其保存为manifest.json文件。
谷歌浏览器扩展程序配置最核心的部分是编写与其配套的JS文件,但代码十分简单:
setInterval(function(){document.getElementById("rush").click()}, 1000)
作用是开启一个定时1秒的定时器,在定时到的时候就点击网页上Id为"rush"的按钮,也就是1秒自动点一次抢购按钮。在准备好这两个文件后,打开Chrome,在菜单栏找到扩展程序选项,点击进入扩展程序管理界面,选择存放这两个文件的文件夹,即可添加刚开发的扩展程序。
打开html文件,不做任何操作,浏览器就会弹出抢购成功的提示,也就是脚本已经顺利运转,帮我自动完成了抢购。
抢购成功了3.场景扩展
为了测试这个脚本对真实网页的效果,随便打开了浏览器收藏夹中的一个网址,瞄准了该页面上的“搜索”按钮,目标是通过脚本自动实现对该按钮的点击。通过查看网页源代码找到了该按钮的Id,修改相应的脚本代码。重新添加扩展程序,刷新网页,预想的情况发生了,“搜索”按钮被点击,打开了一个搜索页面。意想不到的事情也发生了,自动打开的页面越来越多,甚至来不及关闭原网页,不得已只得关闭整个浏览器。
充分证明了一句话:不作死就不会死这个脚本初步实现了自动抢购的功能,为了能够满足实际应用,还需要根据具体情况进行改进,比如监测到按钮的状态从不可用到可用时发起点击,或者在预定时间点发起点击,或者自动填写网页的表格等。
说实话,这个小脚本对于互联网开发者根本不值一提,但对于只与盒子打交道的嵌入式程序员来说,却仿佛看到了代码世界的另一个维度。区块链开发者嘲笑互联网开发者为古典程序员,这么说我肯定算是一个远古程序员了。远古不可怕,但如果不懂进化,或许想离灭亡就不久远了。
网友评论