点击上方“程序人生”,选择“置顶公众号”
第一时间关注程序猿(媛)身边的故事
作者
Staker
一个喜欢写代码的肥宅
如需转载,请联系授权。
双色球是我国很有名的一款彩票,而在这篇文章中我们将对最近6年(2013年~2018年18089期)双色球中奖号码进行爬取和简单分析。
那么这篇文章中将会分两部分介绍分析这其中的过程。
Python爬虫
Java的简单分析
Python爬虫
我们要爬取的这个网站,网址格式如下:
http://kaijiang.500.com/shtml/ssq/期号.shtml
我们可以改变期号来获取任何一期双色球的开奖号码。
我们主要看一下网站结构发现:
红球class为ball_red
蓝球class为ball_blue。
了解完这些,我们就准备开始用爬虫爬取双色球中奖号码了(在这篇文章中,我以爬取双色球18001~18089期开奖号码为例)。
代码如下(带注释):
# -- coding:utf-8 --
import urllib.request
from bs4 import BeautifulSoup
id=18089
#双色球开奖期号(从18089期开始)
times=1
#用于接下来判断是否需要换行
while(id>=18001):
#while循环,获取开奖号码
url="http://kaijiang.500.com/shtml/ssq/"+str(id)+".shtml"
#每一期的开奖地址
website_info=urllib.request.urlopen(url).read().decode('GBK')
#获取了页面,并完成了GBK的转码
soup=BeautifulSoup(website_info,"html.parser")
#html.parser解析器
redballs=soup.find_all('li','ball_red')
#获取所有li标签中class为ball_red的内容
file=open(r'C:\Users\Frank\Desktop\双色球红球.txt', 'a+',encoding='utf-8')
#要写入文件的地址
for redball in redballs:
if times%6==0:
redball_info=redball.string
file.write(redball_info+"\n")
times=times+1
#判断本次开奖号码已全部打印完,换行打印下一期
else:
redball_info=redball.string
file.write(redball_info)
times=times+1
file.close()
#关闭打开文件
id=id-1
else:
print("Done")
#已完成打印
接下来我们可以从txt文件中看到我们爬取的中奖内容。
Java简单分析
接下来,我们要将获取到的数据进行分析,我们希望能获取到不同数字在不同位置的出现概率。
大致的思路如下:
1. 从保存中奖号码的txt文件中读取数据。
2. 截取字符(如:截取前两个字符——第一个球)。
3.判断是否为某个数字(如:01)。
4.计算数字出现的总次数。
import java.io.BufferedReader;
import java.io.FileReader;
public class Main {
public static void main(String[] args) throws Exception {
String str;
int times=0;
//记录出现次数
FileReader fr=new FileReader("C:\\Users\\Frank\\Desktop\\ssq\\red\\红球汇总.txt");
BufferedReader br=new BufferedReader(fr);
while ((str=br.readLine())!=null) {
//循环读取每一行
String str2=str.substring(0,2);
//截取字符串的前两个字符(即开奖号码的第一个球)
if(str2.equals("01")){
//判断是否为01(也可为其它)
times=times+1;
//出现次数+1
}
}
System.out.println(times);
//打印总出现次数
}
}
通过以上代码我们能分析出红球/蓝球所有数字的出现情况。
汇总
以下是蓝红球在最近五年中的出现次数汇总(颜色越深,出现次数越多):
红球
蓝球
其实,通过汇总,我们可以看出数字出现几率基本上都是很接近的,所以买双色球这类彩票靠的还是运气。最后希望大家都能脚踏实地,实现自己的理想。
- The End -
「若你有原创文章想与大家分享,欢迎投稿。」
加编辑微信ID,备注#投稿#:
程序 丨 druidlost
小七 丨 duoshangshuang
上期精彩内容