怎么精准查询双色球历史记录 (python爬取双色球)

之前的几篇,我们都在分析超级大乐透的历史数据。今天,我们换换口味,来聊聊双色球。作为福彩和体彩的两大热门产品,双色球和大乐透对广大群众来说,是萝卜青菜、各有所爱。那么,在以后的文章中,我们也会对比着进行分析,敬请期待。

这篇文章分两部分:第一部分是爬虫,教你如何获取(1)近15年的双色球中奖号码,(2)每一期的中奖注数及奖金,(3)每期一等奖得主所在的省份等数据。第二部分是简单的分析,让你对双色球的十五年大数据有个大致的了解。

爬虫篇

话不多说,数据来源(1): http://datachart.500.com/ssq/history/history.shtml。

python爬取双色球历史数据,教你双色球中奖

【双色球历史数据】

这个页面只包含了最近30期的数据。于是,右键->检查->Network(具体操作请参考当我爬取了近十年的大乐透数据……),就轻松找到了数据存储的页面:http://datachart.500.com/ssq/history/newinc/history.php?start=00001&end=19001。

下一步就是爬取网页中的表格数据了,我使用的是R语言,代码如下:

library(tidyverse)
library(XML)
library(rvest)
u <- "http://datachart.500.com/ssq/history/newinc/history.php?start=00001&end=19001"
url <- u %>% url_escape(reserved = "][!amp;'()*+,;=:/?@#")
tbl <- readHTMLTable(url, which=3, header=F) %>% #从网页获取表格
 select(-V9) %>% 
 mutate_all(funs(gsub(',', '', .))) %>% #去掉逗号(,)
 mutate(V1 = as.factor(V1)) %>%
 mutate(V16 = as.Date(V16)) %>%
 mutate_if(is.character, as.numeric) %>% #把字符串变成数字

短短几秒钟,我们就获得了2003年至今,一共2319期的中奖号码、投注额等数据。接下来,我们要搜集每一期的中奖明细,数据来源(2):http://www.cwl.gov.cn/kjxx/ssq/kjgg/list.shtml。没错,就是中国体彩网公布的双色球中奖公告。

python爬取双色球历史数据,教你双色球中奖

【中国体彩网 - 往期开奖公告】

打开一个开奖公告,很轻松就能找到我们所需要的信息,如下:

python爬取双色球历史数据,教你双色球中奖

【中国体彩网 - 开奖公告】

于是,我们搜集了2013年以来的880张开奖公告,并从公告中截取每期的中奖明细信息。代码比较长,就不附了,需要的朋友可以私信我。如此一来,我们就拿到了双色球每一期的中奖号码、投注额、中奖注数、单注奖金以及一等奖获奖省份等数据。

分析篇

有了历史数据,我们首先来看一下双色球的奖池累积情况:

python爬取双色球历史数据,教你双色球中奖

惊讶!这种上上下下的走势,我以为自己看到了股市的K线图。从2003至今,奖池金额最高触及13亿元。在2015年之前,多次濒临破产,期间,有577期金额少于1亿元,有20期金额少于1千万。然后,我们看一下,双色球15年来的销售情况,如下:

python爬取双色球历史数据,教你双色球中奖

群众们购买双色球的热情还是很高的。2003年至今,投注额从740万增长到最高4.5亿元,增加了60倍。同时,也能看到2012年之后,双色球的销售额出现了滞涨的情况。接下来,我们看一下,一等奖的单注奖金在15年里有什么样的变化呢?

python爬取双色球历史数据,教你双色球中奖

不难看到,2003年至今,一等奖的单注奖金大多处于500万到1000万之间,少数几期达到了最高的1500万元,金额最低时也有155万元。2009年之前,一等奖的单注奖金几乎稳定在500万。2009年之后,以500-1000万之间的金额居多。那么,二等奖的单注奖金是怎么样的变化走势呢?

python爬取双色球历史数据,教你双色球中奖

为了使点更分散,看清更明显,我对Y轴(二等奖单注奖金)取了对数。可以看到,二等奖的单注奖金,整体来说是随着时间越来越少的。2010年之前,二等奖的单注奖金平均为46万元;而2010年之后,二等奖的单注奖金平均为21万元,下降了一半。

最后,让我们看一下,二等奖单注奖金和中奖注数之间的关系,这或许可以解释单注奖金的变化。如下:

python爬取双色球历史数据,教你双色球中奖

可见,二等奖的单注奖金是随着中奖注数的增加而降低的,这种负相关保证了二等奖的整体派奖金额是稳定的。因此,如果你中了二等奖,先不要急着高兴哦,你的奖金数还取决于其他人有没有中奖。

这一篇就先到这里,看官们如果觉得满意,就顺手点个赞呗。后续还有更精彩的分析,让我们互相学习,请多多关注我。

“大乐透”系列文章传送门:

大数据告诉你,哪个省的人最喜欢买彩票?

大数据告诉你,哪个省的人最容易中一等奖?

十年大乐透数据分析「1」大数规律

十年大乐透数据分析「2」连号的秘密

文 | 招财喵zcm,全流程数据分析师,财经数据爱好者,原创不易,转载请注明版权。