Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >分析了16年的福利彩票记录,原来可以用Python这么买彩票

分析了16年的福利彩票记录,原来可以用Python这么买彩票

作者头像
周三不加班
发布于 2019-07-15 11:52:44
发布于 2019-07-15 11:52:44
1.9K02
代码可运行
举报
文章被收录于专栏:程序猿杂货铺程序猿杂货铺
运行总次数:2
代码可运行

上周被一则新闻震惊到了,《2454万元大奖无人认领!福彩史上第二大弃奖在广东中山产生 》,在2019年5月2日开奖的双色球中,广东中山一位彩民博中2454万元,兑奖时间截至2019年7月1日。

令人遗憾的是,中奖者最终未现身领奖,2454万元大奖成为弃奖。经中山市福彩中心查证,这是中国福彩史上金额第二大的弃奖。根据《彩票管理条例实施细则》的有关规定,这次的2454万元弃奖奖金将被纳入彩票公益金。

一直在为福彩做贡献的我,啥时候能摊上这样的好事啊。于是我用Python生成了一组双色球的号码……

1 环境

操作系统:Windows

Python版本:3.7.3

2 需求分析

随机生成一组双色球的号码,我们可以借助random函数,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import random

def ball():
    ball_list=[]
    while 1:
        a=random.randint(1,33)
        if a not in ball_list:
            ball_list.append(a)
        if len(ball_list)==6:
            break

    ball_list.sort()
    ball_list.append(random.randint(1,16))
    print(ball_list)


ball()

但要知道,这么搞的话,丝毫不会有什么中奖的,因为太随机了……

经历过高考的人,肯定都知道三年模拟五年高考。要知道彩票中奖概率很低的,所以我们在这里先分析下历年的数据,借助往年的数据来“精准”地推算下一期中奖号码。

我们通过这个网站来查询彩票的历史开奖信息。

http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html

我们点击下一页,看看网址链接是否有规律

http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html

http://kaijiang.zhcw.com/zhcw/html/ssq/list_2.html

http://kaijiang.zhcw.com/zhcw/html/ssq/list_3.html

http://kaijiang.zhcw.com/zhcw/html/ssq/list_4.html

http://kaijiang.zhcw.com/zhcw/html/ssq/list_5.html

不难发现,可以将目标网址拆分如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
url_part = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list'

url = url_part + '_' + str(i) + '.html'

而 i 对应的正好是页码信息,我们借助<F12>开发调试工具,来看看页数的信息怎么获取:

记录下这里的元素信息。

接下来,我们需要抓取每一页中的具体开奖信息。我们继续通过开发者工具分析出每期开奖信息。

我们依次记录下每期的开奖日期对应的元素信息:

开奖的批次对应的元素信息:

中奖号码对应的元素信息:

有了这些元素信息之后,接下来就是代码的具体实现。

3 代码实现

在这里,我们获取网页的请求使用 requests 模块;解析网址借助 beautifulsoup4 模块。因为都是第三方模块,如环境中没有可以使用 pip 进行安装。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install requests
pip install beautifulsoup4
pip install lxml

模块安装好之后,进行导入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import requests
from bs4 import BeautifulSoup

我们需要先在首页中,拿到页数信息

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 发起请求
basic_url = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}
response = requests.get(basic_url, headers=headers, timeout=10)
response.encoding = 'utf-8'
htm = response.text

# 解析内容
soup = BeautifulSoup(htm, 'html.parser')

# 获取页数信息
page = int(soup.find('p', attrs={"class": "pg"}).find_all('strong')[0].text)

接下来,我们就可以根据规律组装好我们的URL:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
url_part = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list'

for i in range(1, page+1):
    url = url_part + '_' + str(i) + '.html'

拿组装后的url发起请求,并获取每页中各期的开奖信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
res = requests.get(url, headers=headers, timeout=10)
res.encoding = 'utf-8'
context = res.text
soups = BeautifulSoup(context, 'html.parser')

if soups.table is None:
    continue
elif soups.table:
    table_rows = soups.table.find_all('tr')
    for row_num in range(2, len(table_rows)-1):
        row_tds = table_rows[row_num].find_all('td')
        ems = row_tds[2].find_all('em')
        result = row_tds[0].string +', '+ row_tds[1].string +', '+ems[0].string+' '+ems[1].string+' '+ems[2].string+' '+ems[3].string+' '+ems[4].string+' '+ems[5].string+', '+ems[6].string
        print(result)

这样,我们就完成了对每一页中各期开奖数据的获取。获取的数据可以保存在本地。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def save_to_file(content):
    with open('ssq.txt', 'a', encoding='utf-8') as f:
        f.write(content + '\n')

我们在获取每期的开奖数据的同时,记录下红蓝球出现的号码信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 定义两个变量, 用于记录历史开奖信息中的红球、蓝球号码信息
red_num = [] 
blue_num = []

red_num.append(ems[0].string) # 红色球1
red_num.append(ems[1].string) # 红色球2
red_num.append(ems[2].string) # 红色球3
red_num.append(ems[3].string) # 红色球4
red_num.append(ems[4].string) # 红色球5
red_num.append(ems[5].string) # 红色球6
blue_num.append(ems[6].string) # 蓝色球

统计出各个号码出现次数信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
red_count = Counter(red_num)
blue_count = Counter(blue_num)

接下来我们可以根据红蓝号码出现的频率进行排序,并推测出几组双色球号码信息:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 按照出现频率顺序
red_sorted = sorted(red_count.items(), key=lambda x: x[1], reverse=False)
blue_sorted = sorted(blue_count.items(), key=lambda x: x[1], reverse=False)

red = red_sorted[0:6]
blue = blue_sorted[0:3]

red = list(map(lambda x:x[0], red))
blue = list(map(lambda x:x[0], blue))

red.sort()
blue.sort()

print('号码高频-1注:'+str(red)+' | '+blue[0])
print('号码高频-2注:'+str(red)+' | '+blue[1])
print('号码高频-3注:'+str(red)+' | '+blue[2])

当然了,也可以输出反序输出,中奖号码出现频率较低的几组,只需要设置 reverse=True 即可。

4 后记

这里根据蓝色球各号码出现的次数,作了张直方图,可以很直观到蓝色球各号码出现的频率。

有人会问了,这样预测出的中奖号码,中奖概率究竟有多大呢?这个,我可说不清楚,只有买了才会知道……小心错过一个亿哟!

好了,以上就是本篇全部内容。

推荐阅读

程序员进阶之路 --- 网络协议概观

所有的不可描述都要从“我姐姐让我加你“的好友请求开始说起...

缓存更新的套路

一次惊心动魄的服务器误删文件恢复过程

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员啊粥 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
01 使用LSTM模型预测双色球,中大奖指日可待!
上班空闲之余,同事们经常去买买彩票乐呵乐呵,希望中了头等奖就可以走上人生巅峰,哈哈哈!
测试开发囤货
2021/09/08
7.8K1
bs4爬虫实战二:获取双色球中奖信息
目标分析: 访问双色球网站:http://www.zhcw.com/ssq/kaijiangshuju/index.shtml?type=0 右键查看源代码,发现这个框架的数据来源于: http:
py3study
2018/08/03
1.1K0
bs4--xlwt存入excel
先写一个简单的python程序测试一下,创建一个名为excelwrite.py文件,代码如下:
py3study
2018/08/03
7850
Python爬虫+数据可视化:分期并预测双色球中奖号码
红球一共6组,每组从1-33中抽取一个,六个互相不重复。然后蓝球是从1-16中抽取一个数字,这整个组成的双色球
松鼠爱吃饼干
2021/09/02
5.8K0
小白实战100案例: 完整简单的双色球彩票中奖判断程序,适合小白入门
导入了必要的模块:random用于生成随机数,permutations用于计算排列情况,sys用于程序终止。
全栈若城
2024/02/29
6360
小白实战100案例: 完整简单的双色球彩票中奖判断程序,适合小白入门
python3结合BeautifulSoup和requests爬取双色球开奖结果
查看其框架源码可知,其获取的url为:http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html
游离于山间之上的Java爱好者
2022/08/09
8310
python3结合BeautifulSoup和requests爬取双色球开奖结果
爬取500双色球彩票
url = "http://kaijiang.500.com/shtml/ssq/"+number+".shtml"
得野
2019/08/29
8590
爬取500双色球彩票
【python分析】买彩票机选和守号哪个中奖概率高?
作者:Powerxing 厦门大学计算机系13级研究生 很多人有买彩票,不过就是瞎买买。早之前是随机买过一注,然后一直买这个号,不过断过一段时间没买,后来就一直是每期机选一注了。算起来也有一年多了,但目前最高奖金还是停留在5元… 于是乎就冒出了这么一个想法,机选跟守号(随意买的,没有刻意去研究彩票)哪个中奖的可能性高一些? 本着实践出真知的想法,顺便学习下拖了很久的Python网络爬虫,写了个小程序,抓取了历年大乐透/双色球的开奖数据,进行了简单的验证。 抓取彩票开奖数据 用Python网络爬虫,结合py
机器学习AI算法工程
2018/03/13
11.8K0
【python分析】买彩票机选和守号哪个中奖概率高?
用C#实现模拟双色球中奖控制台应用程序
简单地运用CSharp语言和.net平台,如变量、方法、类、数组、字典、系统函数、规范的注释、控制台输出、文件的读写、程序怎样设计等。
摘繁华
2022/05/03
1.5K0
用C#实现模拟双色球中奖控制台应用程序
Python预测彩票中奖
总共买了20110012次,花了4022.0024万元。我们暂且算他一天买一次。emmmm…..
行云博客
2022/05/11
1.1K0
Python获取彩票信息(一)
学习python相关知识:参考尚学堂项目案例学习通过python获取双色球彩票信息。
俊才
2023/01/16
6390
Python爬取彩票双色球并存到把数据e
环境:python3 目的:爬取15年的双色球开奖号以及期数和开奖日期: 上代码 #!/usr/bin/env python3 #-*-coding:utf-8-*- # @Author  : 杜文涛 # @Time    : 2018/4/19 16:01 # @File    : cpssq.py #×××双色球数据 import requests import re import xlwt import time def get_all_page():     global all_page
py3study
2020/01/06
1.5K0
CSharp实现模拟双色球控制台应用程序
这是我在大一第一学期C#的课程设计,要求编写一个模拟双色球彩票的控制台应用程序,用以实现简单的模拟选购彩票。
摘繁华
2021/12/27
1.7K0
CSharp实现模拟双色球控制台应用程序
大数据应用之双色球算奖平台总体设计数据规模估算篇
  自从写了上一篇《大数据应用之双色球算奖平台总体设计大纲篇一》,受到许多园友的关注和指导,在此表示感谢,尤其是园友个人知识管理给出的一个评论,让我深思,原文如下“双色球算奖这么简单的活,也称大数据。先生:不是数据多,叫大数据。双色球算奖,用Oracle数据库的索引,1分钟内就算完。关键是人家不想这么快”。话不太好听,尤其是称我为先生那句,但却发人深思,是啊:到底什么是大数据呢?选择双色球算奖作为大数据应用的切入点是否合适呢?然后就是让我诧异的1分钟理论很是吓了我一跳的。
数据饕餮
2019/01/14
2K2
Java基础-day07-代码题-自定义数据类型;ArrayList集合
Java基础-day07-代码题-自定义数据类型&ArrayList集合 1.饭店结账程序. 定义菜品类,属性为名称,价格,数量. 集合中添加若干菜品对象. 遍历集合,打印出集合中所有菜品名称和消费总
Java帮帮
2018/03/19
9790
Java基础-day07-代码题-自定义数据类型;ArrayList集合
js 实现双色球
前端代码 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; } li{ list-style: none; width: 50px; height: 50px; border-radius: 50%; text-al
姜姜178
2022/11/18
1.3K0
python计算双色球数字概率_python绘制双色球走势图
友情提示:双色球预测分析只为练习技术,不要抱着预测中大奖的心态,不可能预测准确。 python数据分析1:获取双色球历史信息 python数据分析2:双色球 蓝红球分析统计 python数据分析3:双色球 单个红和蓝球哪个比例高 python数据分析4:双色球 两个红和蓝球哪组合比例高 python数据分析5:双色球 两个红球哪组合比例高 python数据分析6:双色球 使用线性回归算法预测下期中奖结果
全栈程序员站长
2022/09/24
1.8K0
python计算双色球数字概率_python绘制双色球走势图
15年5700亿,双色球16227注一等奖数据中,我们发现了这些秘密
导读:去年,我曾写过一篇文章用Python爬取了14年所有的福彩3D信息,彩民们,只能帮你们到这了,得到很多人的反响,很多粉丝留言,快点出一版分析教程,找找其中的规律。说不定哪天头等奖就是你,从此迎娶白富美,走上人生巅峰!
IT阅读排行榜
2019/03/19
1.5K0
15年5700亿,双色球16227注一等奖数据中,我们发现了这些秘密
【玩转Python系列】【小白必看】使用Python爬取双色球历史数据并可视化分析
这部分代码导入了需要使用的库。requests库用于发送网络请求,lxml库用于解析HTML,csv库用于处理CSV文件,matplotlib.pyplot库用于绘制图表,matplotlib.font_manager.FontProperties库用于加载自定义字体。
全栈若城
2024/02/29
1K0
【玩转Python系列】【小白必看】使用Python爬取双色球历史数据并可视化分析
flink流式计算双色球的最小得奖
本人是个资深彩民,每周都会在彩票上花上50-100块钱买彩票,虽说一直没中。 上网时,经常听到别人讨论说,彩票是8点钟禁售,9点15分开奖,很多人都会想,这一个半时内,福彩中心会不会算一个最小人买的彩票呢。 刚好,最近在学买流式计算,尝试着用这个来算一下最小得奖。 当然,写这个东东没有说彩票造假,也没有特别的意思,只是想将学到的东西用起来的尝试。
星痕
2019/02/13
9900
推荐阅读
相关推荐
01 使用LSTM模型预测双色球,中大奖指日可待!
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验