2017年双色球中奖号码

Posted 03郭丽红

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了2017年双色球中奖号码相关的知识,希望对你有一定的参考价值。

       网络爬虫,又称网页蜘蛛、网络机器人。随着计算机技术的高速发展,互联网中的信息量越来越大,搜索引擎应运而生。传统的搜索引擎会有返回结果不精确等局限性。为了解决传统搜索引擎的局限性,专用型网络爬虫在互联网中越来越常见。同时,专用型网络爬虫具有专用性,可以根据制定的规则和特征,最后只体现和筛选出有用的信息。

在国内,唯一能合法暴富的方法似乎只有彩票中奖了。虽然人人都知道中奖的概率很低,但希望总是存在的。中奖的号码虽然不能直接推算出来,但根据概率计算将中奖的稍微调大点还是可能的,在进行概率计算前要做的就是收集数据,好在中国福利彩票并不禁止收集数据进行概率计算。

2.利用python在网页收集信息

       本次实验主要是爬取2017年双色球中奖号码以及统计中奖结果。

import re
from bs4 import BeautifulSoup
import ur11ib2
from mylog import MyLog as mylog


class DoubleColorBallItem(object):
    date=None #开奖日期
    order=None #当年的顺序
    red1=None #第一个红球的号码
    red2=None #第二个红球的号码
    red3=None #第三个红球的号码
    red4=None #第四个红球的号码
    red5=None #第五个红球的号码
    red6=None #第六个红球的号码
    blue=None #篮球号码
    mony=None #彩池金额
    firstPrize=None  #一等奖中奖人数
    secondPrize=None #二等奖中奖人数
class GetDoubleColorBallNumber(object):
    \'\'\'这个类用于获取双色球中奖号码,返回一个txt文件
    \'\'\'
    def _init_(self):
        self.urls=[]
        self.log=mylog()
        self.getUrls()
        self.items=self.spider(self.urls)
        self.pipelines(self.items)


    def getUrls(self):
        \'\'\'获取数据来源网页
        \'\'\'
        URL=r\'http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html\'
        htmlContent=self.getResponseContent(URL)
        soup=BeautifulSoup(htmlContent,\'lxml\')
        tag=soup.find_all(re.compile(\'P\'))[-1]
        pages=tag.strong.get_text()
        for i in xrang(1,int(pages)+1):
            url=r\'http://kaijiang.zhcw.com/zhcw/html/ssq/list_\'+str(i) +\'.html\'
            self.urls.append(url)
            self.log.info(\'u添加URL:%S到URLS\\r\\n\'%url)
    def getResponseContent(self,url):
        \'\'\'这里单独使用一个函数返回页面返回值,是为了后期方便地加入proxy和headers等
        \'\'\'
        try:
            respone=urllib2.urlopen(url.encode(\'utf8\'))
        except:
            self.log.error(u\'python返回URL:%s数据失败 \\r\\n\'%url)
        else:
            self.log.info(u\'python返回URL:%s数据成功 \\r\\n\'%url)
            return response.read()


    def spider(self,urls):
        \'\'\'这个函数的作用是从获取的数据中过滤得到中奖信息
        \'\'\'
        items=[]
        for url in urls:
            htmlContent=self.getResponseContent(url)
            soup=BeautifulSoup(htmlContent,\'lxml\')
            tags=soup.find_all(\'tr\',attrs={})
            for tag in tags:
                if tag.find(\'em\'):
                    item=DoubleColorBallItem()
                    TagTd=tag.find_all(\'td\')
                    item.date=TagTd[0].get_text()
                    item.order=TagTd[1].get_text()
                    TagEm=TagTd[2].find_all(\'em\')
                    item.red1=tagEm[0].get_text()
                    item.red2=tagEm[1].get_text()
                    item.red3=tagEm[2].get_text()
                    item.red4=tagEm[3].get_text()
                    item.red5=tagEm[4].get_text()
                    item.red6=tagEm[5].get_text()
                    item.blue=tagEm[6].get_text()
                    item.money=tagTd[3].find(\'strong\').get_text()
                    item.firstPrize=tagTd[4].find(\'strong\').get_text()
                    item.secondPrize=tagTd[5].find(\'strong\').get_text()
                    items.append(item)
                    self.log.info(u\'获取日期为:%s的数据成功\'%(item.date))
        return items
    def pipelines(self,items):
        fileName=u\'双色球.txt\'.encode(GBK)
        with open(fileName,\'w\') as fp:
            for item in items:
                fp.write(\'%s %s \\t %s %s %s %s %s %s %s \\t %s \\t %s %s \\n\' %(item.date,item.order,item.red1,item.red2,item.red3,item.red4,item.red5,item.red6,item.blue,item.money,item.firstPrize,item.secondPrize))
                self.log.info(u\'将日期为:%s的数据存入"%s"...\' %(item.date,fileName.decode(\'GBK\')))

if _name_==\'_main_\':
    GDCBN=GetDoubleColorBallNumber()





 

      爬取结果如图所示(截取部分截图):

 

         图2.1 2017年每期开奖信息

2017年中奖号码如图所示(截取部分图):

图2.2 2017年每期开奖号码

       将中奖号码保存至qiu.txt,分析统计结果如图所示:

 

import jieba   #处理中文需要的库
fo=open(\'qiu2.txt\',\'r\')#把qiu.txt的内容读出到of里
numbers=fo.read()#把of的内容给numbers
#print(numbers)
numberss=list(jieba.cut(numbers))#精准模式来分词
exp={\' \',\'\\n\'} #把不要统计的词放在一个集合里  
dict={} #建立空字典来存需要统计的词频         
keys=set(numbers)-exp
#在文的集合里(词频不重复、无序),排除我们不要的词,即exp里面的词
for i in keys: #对一个字典的键值(唯一),进行统计
    dict[i]=numbers.count(i)#统计的内容词频来自numbers里(里面的词可能会重复)
    count=list(dict.items())
#因为字典式不能排序的,所以要变成可以排序的列表。具体是对字典里的什么内容排序呢?就是对字典里的每一对值排序,怎么才能对一对排序呢?字典的items()就是输出一对值得函数。
count.sort(key=lambda x:x[1],reverse=True) #lambda()是个定义函数匿名的
for i in range(33): #打印统计数字的出现次数
    print(count[i])
fo.close()

 图2.3 统计2017年中奖号码

       用工具做成词云的结果为:

import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt



txt=open(\'qiu2.txt\',\'r\',encoding=\'gb2312\').read()


cy = WordCloud(font_path=\'msyh.ttc\').generate(txt)
                  #wordcloud默认不支持中文,这里的font_path需要指向中文字体
plt.imshow(cy, interpolation=\'bilinear\')
plt.axis("off")
plt.show()

 

图2.4 2017年中奖号码词云

3.结论

       由图可以看出,2017呢喃双色球中奖的号码中,号码21、15和14和23出现的比较多一些,可以适当考虑这几个号码。

 

以上是关于2017年双色球中奖号码的主要内容,如果未能解决你的问题,请参考以下文章

哪里能找到双色球2003年起有史以来所有号码走势图?

使用Python生成双色球号码

双色球--最多2个号码相同的内幕

双色球--最多2个号码相同的内幕

关于遗漏的一种算法

彩票双色球中奖的几率是多少?谁算过?