如何截取彩票?
一、利用Js获得彩票数据 首先,我们打开一个正常出售的彩票网站,随便选择一个数字型彩票,比如我选的体彩排列三。现在网页上显示的是第150期开奖结果。 我们看到上面有一串由0-9组成的号码,这就是本期开出的中奖号码了,那么这些号码是怎么产生的呢? 通过观察我们发现,在网页上只显示了6个红球号码,还有一个黑球号码没有显示出来,那么我们就可以想办法获取这个黑球号码了。 既然js文件是动态加载的,我们就可以使用fiddler或者代理工具抓包,找到带有球号的地方,然后复制下来。 用同样方法我们可以得到另外两个未开奖的期号的彩种,分别保存(红球)和中蓝(蓝球),这样我们就得到了这期的所有可能的号码,共3注,如下图: 看到这里,有的小伙伴会想,我用excel把三个表的内容粘贴过来不就可以了嘛!注意看上面图片中,每个表格的最后一行都有“当前选号数”的字眼,这说明什么?说明网站不仅每行有计数,每一列也有计数!也就是说你按顺序把几千甚至几万个号码黏贴过来,网站上显示的却是只有几十或者几百组号码!你的号码早就被人过滤掉了! 想了解更多互联网过滤技术,推荐一篇好文:《过滤器之迷》。
二、利用计算机软件生成新号码 虽然上面的方法能够基本满足我们的需求,但是有个问题一直没有解决:我们不可能每期都手工输入这些号码,如果运用脚本自动执行的话,又很容易被网站发现,从而造成不能购票的情况。 我们还需要进一步处理,让软件自己产生新的号码。下面介绍两种方法:
1.基于同余算法产生新号码 假设我们要买3注,那么只需要重复上面过程3次即可获得。这里需要提醒的是,第一次运行程序的时候可能需要一点时间,因为是全新数值,所以比较耗费时间,后面几次就很快了。 采用同样的方法可以生成双色球或是大乐透等其它玩法的号码,只不过需要计算的位数增加了,耗时也会更长。
2.基于随机数生成新号码 要实现随机数生成长度相同且没有重复的序列,我们可以先创建一个字典,然后把生成的随机数按照字典进行排序,最后去掉重复的数值即可。