原文:
欢迎交换友链 Laker's Blog--进击的程序媛
Github:
微博: 江小湖Laker
双十一红包没在乎,听朋友说买到上百的红包,双十二弹出广告随意点了一下,心血来潮想写了个脚本。
道理都一样,这里以页面 为例qq协议代挂抢红包脚本,使用Chrome插件的方式(还有好多其他实现方法,我这儿想尝试Chrome插件的撰写)。只是做了模拟点击。
配置Chrome插件
本地改建一个目录 click ,新建文件manifest.json,里面定义了插件的配置。
{
"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"]
}
]
}
写脚本
先找到抢红包的按键。这里是这个图片,没有id、class等任何便于查询的标记qq协议代挂抢红包脚本,所以选用XPath:
同理找到重新抢红包的按键的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开启开发者方式,加载自己建的插件目录即可
测试
现在至抢红包的页面刷新后就可以看见疗效了,建议不要刷很经常,我的早已被封了。
反正我刷了几百下也没有出一个红包,就当作练习了~