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

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

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

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

python自动抢购dmall_一个简易的自动抢购脚本相关推荐

  1. ESP8266 + MAX7219 做一个简易的自动同步的倒计时时钟

    ESP8266 + MAX 7219 简易的自动同步的倒计时时钟 正好最近有大事情想需要倒计时 然后翻遍了家里的犄角旮旯,发现还有个很古老的 ESP8266 还闲置着 所以就拿过来用了 引脚接法 其实 ...

  2. 【Python】快速创建一个简易 HTTP 服务器(http.server)

    引言 http.server 是 socketserver.TCPServer 的子类,它在 HTTP 套接字上创建和监听,并将请求分派给处理程序.本文是关于如何使用 Python 的 http.se ...

  3. Python 利用PyQt5写一个简易的串口助手

    学习单片机,STM32好长时间了,也做了一些项目,一直想利用上位机实现电脑与单片机之间的传输数据,利用串口助手是最直接的通信方式,但串口助手不适合做上位机,如果会写串口助手的软件,基本能写自己写一个上 ...

  4. Python:写了一个简易的同/环比分析器

    前言:数据分析中,传统描述性统计(即没有用到machine learning)还是在日常工作中占了很大一部分比重(或者说99%...),而同/环比分析更是占了绝大多数. 而传统处理中,一般都是用exc ...

  5. 学python要有多少英语词汇量测试_非常适合新手的一个Python爬虫项目: 打造一个英文词汇量测试脚本!...

    最近朋友在苦学英文,但是又不知道自己学的怎么样了,直到有一天,他找到了扇贝网,里面有个"评估你的单词量"功能非常的好,就推荐给我了! 今天我们就用python做一个小的爬虫,然后自 ...

  6. python英语词汇量测试_非常适合新手的一个Python爬虫项目: 打造一个英文词汇量测试脚本!...

    最近朋友在苦学英文,但是又不知道自己学的怎么样了,直到有一天,他找到了扇贝网,里面有个"评估你的单词量"功能非常的好,就推荐给我了! 今天我们就用python做一个小的爬虫,然后自 ...

  7. 非常适合新手的一个Python爬虫项目: 打造一个英文词汇量测试脚本!

    最近朋友在苦学英文,但是又不知道自己学的怎么样了,直到有一天,他找到了扇贝网,里面有个"评估你的单词量"功能非常的好,就推荐给我了! 今天我们就用python做一个小的爬虫,然后自 ...

  8. python打开另一个程序_python 新手问题啊,为什么我运行一个python程序,另一个就会自动退出呢?始终只能运行一个...

    /data/python/caiji_asc.py /data/python/caiji_desc.py 两个文件的代码几乎一样的,就是查询mysql的时候order 排序不一样 下面是具体代码,刚学 ...

  9. Python 开发:制作一个简易的点菜系统(附源码)

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于海唤鱼杂记客栈 ,作者:海唤鱼杂记客栈 私信回复"资料&q ...

最新文章

  1. c语言从键盘输入千米数,第二章 C语言编程基础.ppt
  2. java递归整数逆序,将一个整数逆序输出,分别给出递归和非递归算法 | 学步园...
  3. Redis BitMap适应场景
  4. 二十七、 爬取Boss直聘的招聘信息
  5. java捕捉了异常_java 异常捕获与异常处理
  6. HUE 打开 WorkFlow异常 Operation category READ is not supported in state standby
  7. json模拟数据怎么用_在使用axios获取自己模拟的json数据是踩到的坑
  8. win32常用文件操作
  9. 加州将放宽无人车路测标准:没方向盘也行,没人类驾驶员也行
  10. h5 监听浏览器被切换到后台或者手机锁屏再次唤起事件
  11. Java 并发编程之美:线程相关的基础知识
  12. eltable 无数据文案修改_element-table 无数据的时候,把“暂无数据” 改成其他文字或图片...
  13. java applet 按钮_Java Applet语法简介
  14. 国内有哪些不错的计算机视觉团队?
  15. Softing dataFEED系列--将现场设备集成到西门子工业物联网解决方案
  16. 都快2021了,你还不知道怎么成为优秀程序员?大牛推荐6个软件开发步骤
  17. P106双N卡 自动调用方案
  18. git撤销commit
  19. 【HTML5】基础教程
  20. html基本标记练习钱塘湖春行,实验1HTML基本标记的练习.doc

热门文章

  1. vue 点击谁 谁变色
  2. 基于springboot小型车队管理系统毕业设计源码061709
  3. 前端想自学后找个小公司混口饭吃,需要学到什么程度?
  4. des 加密 iOS
  5. 现在Easy Scheduler想贡献给Apache基金会,我们做了一份问卷看下大家的想法,也请大家积极参与,谢谢!
  6. 使用PyQT进行可视化编程
  7. 林深时见鹿,海蓝时见鲸
  8. python实现zigzag_Zigzag Iterator的Pythonic方式?
  9. Siemens TIA14 安装问题汇总
  10. 万字长文综述:文本增强技术的研究进展及应用实践