日期:2014-05-16  浏览次数:20336 次

无JS“模拟点击”事件,实现批量领取淘宝优惠劵

在实际的应用开发中,我们会常常用到JS的模事件,比如说点击事件。但老夫今天想说的是,利用一种非常规的js模拟点击事件来实现批量领取淘宝优惠劵的功能。

想法来自于未婚妻对淘宝网的钟爱,双11狂欢,一个优惠劵领取页面,优惠劵散落一地,一个一个领取到手抽筋(我表示无比的崇拜淘宝网运营小二的运营功力,你丫的就不能给我来个直接的么?!),这完全是在浪费广大人民群众的时间啊。

好男人这个时候必须出手拯救,一个一键批量领取优惠劵的功能对决战双11实在是太有必要了。研究了下优惠劵的领取功能,只需要满足用户在登陆淘宝的状态下,点击优惠劵领取的链接即可,无需token校验,无需多次领取验证码校验。soga,这样,只要通过用户的模拟点击就能轻松实现领取功能。

要操作淘宝某个页面的全部优惠劵领取link, 首先是要将目标优惠劵链接全部拿到,然后实现模拟点击,这是大体思路。

据此,老夫只想到了两种方法。

第一种方法:做一个浏览器插件操作页面dom结构,用JS实现模拟点击的效果。浏览器插件,能非常方便的操作页面的dom结构,比如获取页面的全部超链接,但我没有采用,老夫完全对自己的前端知识不自信啊;同时浏览器插件有一定的局限性,拯救得了个人,还有那么多需要拯救的网购MM怎么办?需求是刚性的,需求的执行方法多样的,需求的落地是需要根据实际情况的,老夫决定尝试第二种方法。

第二种方法:用后端程序去爬取页面的超链接,然后在自己的页面上实现模拟点击。说的严重点,就是做一个爬虫程序,爬取页面的全部超链接;简单点,就是发一个http请求优惠劵页面,解析返回的xhtml,然后根据优惠劵链接匹配规则进行筛选。

所谓无JS模拟点击,其实是老夫标题党了,简单点说,是利用img标签的自动加载功能,将img的src指向了优惠劵的领取地址,这样页面加载的时候,其实是自动请求了一遍链接,同时,img的宽度和高度不指定或者设置为0,用户是看不到任何其他的效果的,这样让后端开发也能轻松实现JS的onclick操作。

类似操作的其他用途:页面装载数据统计,很多页面的埋点统计,是写一个非图片src的img来实现的。

?

效果预览:http://www.12xiaoshi.com/youhuiquan.php

?

?

?

?

1 楼 beiyeren 2012-11-14  
高,实在是高