python自动抢购dmall_一个简易的自动抢购脚本

两年前的中秋节,阿里巴巴四个程序员编写了段网页脚本,抢了公司一百多盒月饼而惨遭辞退。有人说阿里小题大做,有人说诚信第一,那时我在想他们是如何做到的呢?上个月,二组群里讨论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,修改相应的脚本代码。重新添加扩展程序,刷新网页,预想的情况发生了,“搜索”按钮被点击,打开了一个搜索页面。意想不到的事情也发生了,自动打开的页面越来越多,甚至来不及关闭原网页,不得已只得关闭整个浏览器。

充分证明了一句话:不作死就不会死

这个脚本初步实现了自动抢购的功能,为了能够满足实际应用,还需要根据具体情况进行改进,比如监测到按钮的状态从不可用到可用时发起点击,或者在预定时间点发起点击,或者自动填写网页的表格等。

说实话,这个小脚本对于互联网开发者根本不值一提,但对于只与盒子打交道的嵌入式程序员来说,却仿佛看到了代码世界的另一个维度。区块链开发者嘲笑互联网开发者为古典程序员,这么说我肯定算是一个远古程序员了。远古不可怕,但如果不懂进化,或许想离灭亡就不久远了。

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值