伯乐论坛网

搜索
查看: 296|回复: 20

当我爬取了近十年的大乐透数据……

[复制链接]

1

主题

3

帖子

3

积分

新手上路

Rank: 1

积分
3
发表于 2022-9-20 17:05:22 | 显示全部楼层 |阅读模式
最近在学习R爬虫,想找些格式简单的数据练练手,于是就想到了彩票数据,下面分享一波我爬取大乐透数据的经历。
首先,数据来源:http://datachart.500.com/dlt/history/history.shtml【超级大乐透历史数据】:


网页数据看起来很工整的样子,是个不错的练手对象。
然后,右键->查看网页源代码,搜索“期号”,很快就发现中奖信息所在的区域。但令人郁闷的是,这里只显示了最近30期的数据。于是,返回点击“最近100期”,再查看源代码,发现还是只显示了最近30期的数据。
因此,我们看到的网页并非数据的存储页,而是展示页。于是,右键->检查,在网页操作,查看00001期至19001期,在network下找到了真正存储数据的页面:http://datachart.500.com/dlt/history/newinc/history.php?start=00001&end=19001。点进去发现2007年至今的所有数据都在,真是太好了。


接下来就是抓取过程,我使用的是rvest包,代码如下:
## Get history Letto data
library(rvest)
library(stringr)
library(dplyr)
url <- "http://datachart.500.com/dlt/history/newinc/history.php?start=00001&end=19001" %>%
url_escape(reserved = "][!$&'()*+,;=:/?@#")
page <- read_html(url) ## 读入网页内容
node <- html_nodes(page, '.t_tr1') ## 抓取节点
node <- node[grep('cfont', node)] ## 进一步筛选节点
trim <- function(x) {
a1 <- unlist(strsplit(as.character(x), ' '))
a2 <- gsub('>|<|,','',str_extract_all(a1,">.*<"))
a3 <- a2[3:length(a2)]
return(a3)
}
Leto <- as.data.frame(do.call('rbind', lapply(node, trim)), stringsAsFactors = FALSE)
for(i in 2:14) { Leto[,i] <- as.numeric(Leto[,i]) }
Leto[,15] <- as.Date(Leto[,15])
colnames(Leto) <- c('期号','红球1','红球2','红球3','红球4','红球5','蓝球1','蓝球2',
'奖池','一等奖注数','一等奖奖金','二等奖注数','二等奖奖金',
'全部奖金','开奖日期')在读入网页内容,抓取并筛选节点之后,就要对数据进行修修剪剪了。我这里定义了一个trim函数,可以只留下数字的信息。结果如下:


从2007年001期到现在,一共进行了1734期,那么,群众们参与的热情度高不高呢?


可见,大乐透的奖池金额由2007年的不足1亿,增长到2018年的60多亿,增长了60多倍。尤其是2014年之后,群众们购买彩票的热情迅速膨胀。那么,派发的奖金金额在这十年间有什么变化呢?


10年间,派发的奖金由2000万近乎匀速地增长到2亿元,增加了10倍。
下一步,让我们看看大家比较关心的一等奖金额在这10年间有着怎样的变化呢?


2007年至今,一等奖的单注金额都稳定在500-1000万的区间内,只有极少数几期的奖金超出或低于这个范围。
只是利用大乐透的数据做了简单的分析,看官们如果觉得满意,就顺手点个赞呗,让我们互相学习。
<hr/>文 | 索罗斯的书屋,全流程数据分析师,财经数据爱好者,原创不易,转载请注明版权。
回复

使用道具 举报

2

主题

3

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2022-9-20 17:05:55 | 显示全部楼层
哥们,告诉你,输入0000可以输出所有数据,全选保存到Excel导入数据库,2分钟不用。以前的我也像你一样,什么都爬虫Python/R,浪费时间,做之前先思考下
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-20 17:06:22 | 显示全部楼层
麻烦能发我一份截止到最近的大乐透号码么…我想试下深度学习预测[拜托][拜托][拜托][拜托]
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-20 17:06:42 | 显示全部楼层
1339296926@qq.com
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-20 17:07:14 | 显示全部楼层
已发送
回复

使用道具 举报

0

主题

2

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-20 17:07:24 | 显示全部楼层
您好,可以发我一份截止到最近的大乐透号码么,我也想看看。谢谢了。153623666@qq.com
回复

使用道具 举报

0

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-20 17:07:40 | 显示全部楼层
Excel
回复

使用道具 举报

0

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-20 17:08:28 | 显示全部楼层
我只是练习爬虫
回复

使用道具 举报

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2022-9-20 17:09:26 | 显示全部楼层
已发送
回复

使用道具 举报

1

主题

2

帖子

4

积分

新手上路

Rank: 1

积分
4
发表于 2022-9-20 17:10:03 | 显示全部楼层
也请发送一份给我,469613263@qq.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright © 2001-2013 Comsenz Inc.Powered by Discuz!X3.4
快速回复 返回顶部 返回列表