原文:http://laker.me/blog/2015/12/10/15_12010_auto_red_packet/
欢迎交换友链 Laker's Blog--进击的程序媛
Github:https://github.com/younglaker
微博: 江小湖Lakerhtml
双十一红包没在乎,听朋友说抢到上百的红包,双十二弹出广告随便点了一下,心血来潮想写了个脚本。jquery
道理都同样,这里以页面 为例,使用Chrome插件的方法(还有不少其余实现方式,我这里想尝试Chrome插件的编写)。只是作了模拟点击。git
本地新建一个目录 click ,新建文件manifest.json,里面定义了插件的配置。github
{ "name": "click", "version": "1.0", "manifest_version":2, "description": "Red packet", "permissions": ["http://*/*"], "content_scripts":[ { "matches":["https://www.taobao.com/markets/20151212/home/main-wf?mode=wow&refpid=mm_14428609_3290185_40982810&eh=fPCHhJ44zFBNUyfOh2k%2BHiZfdLHx8kQ31QInGOP2KCpZ4u2OgYu3W%2FmbDHCJJEP7X9iCfKlIJzkveuFnQMBXxMkbLKg8nWNj&ali_trackid=2:mm_14428609_3290185_40982810:1449725091_258_1788766137"], "js":["jquery-2.1.4.min.js","main.js"] } ] }
name: 插件名json
manifest_version: 固定值2测试
content_scripts: 匹配的网站网站
js: 须要加载的脚本,目前manifest.json、jquery-2.1.4.min.js、main.js都放在同一目录下。this
其余配置如ico之类都省略了,有须要请自行查找资料lua
先找到抢红包的按钮。这里是这个图片,没有id、class等任何方便查询的标记,因此采用XPath:spa
同理找到再次抢红包的按钮的XPath:
把如下代码粘贴到 main.js:
$(document).ready(function() { var a = setInterval(function () { console.log("开始"); // 点击抢红包 $(document).xpathEvaluate('/html/body/div[11]/div[2]/img').click(); // 点击再来一次 var b = setInterval(function () { $(document).xpathEvaluate('/html/body/div[11]/div[4]/div[2]/div[1]').click(); }, 2000); }, 2000); }); // 处理XPath $.fn.xpathEvaluate = function (xpathExpression) { $this = this.first(); xpathResult = this[0].evaluate(xpathExpression, this[0], null, XPathResult.ORDERED_NODE_ITERATOR_TYPE, null); result = []; while (elem = xpathResult.iterateNext()) { result.push(elem); } $result = jQuery([]).pushStack( result ); return $result; }
上面的代码已经能够正常运行了,可是淘宝有反做弊机制,个人脚本刷了几百下就被封了。为了下降被封的风险,应改进代码把间隔时间设为随机数,此处我就再也不写出具体代码了。
Chrome开启开发者模式,加载本身建的插件目录便可
如今到抢红包的页面刷新后就能够看到效果了,建议不要刷太频繁,个人已经被封了。
反正我刷了几百下也没有出一个红包,就当作练习了~