Python数据分析之获取双色球历史信息的方法示例


Posted in Python onFebruary 03, 2018

本文实例讲述了Python数据分析之获取双色球历史信息的方法。分享给大家供大家参考,具体如下:

每个人都有一颗中双色球大奖的心,对于技术人员来说,通过技术分析,可以增加中奖几率,现使用python语言收集历史双色球中奖信息,之后进行预测分析。

说明:采用2016年5月15日获取的双色球数据为基础进行分析,总抽奖数1940次。

初级代码,有些内容比较繁琐,有更好的代码,大家可以分享。

#!/usr/bin/python
# -*- coding:UTF-8 -*-
#coding:utf-8
#author:levycui
#date:20160513
#Description:双色球信息收集
import urllib2
from bs4 import BeautifulSoup  #采用BeautifulSoup
import os
import re
#伪装成浏览器登陆,获取网页源代码
def getPage(href):
  headers = {
    'User-Agent':'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6'
  }
  req = urllib2.Request(
    url = href ,
    headers = headers
  )
  try:
    post = urllib2.urlopen(req)
  except urllib2.HTTPError,e:
    print e.code
    print e.reason
  return post.read()
#初始化url 双色球首页
url = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html'
#===============================================================================
#获取url总页数
def getPageNum(url):
  num =0
  page = getPage(url)
  soup = BeautifulSoup(page)
  strong = soup.find('td',colspan='7')
  # print strong
  if strong:
    result = strong.get_text().split(' ')
    # print result
    list_num = re.findall("[0-9]{1}",result[1])
    # print list_num
    for i in range(len(list_num)):
      num = num*10 + int(list_num[i])
    return num
  else:
    return 0
#===============================================================================
#获取每页双色球的信息
def getText(url):
  for list_num in range(1,getPageNum(url)):  #从第一页到第getPageNum(url)页
    print list_num #打印下页码
    href = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list_'+str(list_num)+'.html' #调用新url链接
    # for listnum in len(list_num):
    page = BeautifulSoup(getPage(href))
    em_list = page.find_all('em')  #匹配em内容
    div_list = page.find_all('td',{'align':'center'})  #匹配 <td align=center>这样的内容
    #初始化n
    n = 0
    #将双色球数字信息写入num.txt文件
    fp = open("num.txt" ,"w")
    for div in em_list:
      emnum1 = div.get_text()
      # print emnum1
      text = div.get_text()
      text = text.encode('utf-8')
      #print title
      n=n+1
      if n==7:
        text = text + "\n"
        n=0
      else:
        text = text + ","
      fp.write(str(text))
    fp.close()
    #将日期信息写入date.txt文件
    fp = open("date.txt" ,"w")
    for div in div_list:
      text = div.get_text().strip('')
      # print text
      list_num = re.findall('\d{4}-\d{2}-\d{2}',text)
      list_num = str(list_num[::1])
      list_num = list_num[3:13]
      if len(list_num) == 0:
        continue
      elif len(list_num) > 1:
        fp.write(str(list_num)+'\n')
    fp.close()
    #将num.txt和date.txt文件进行整合写入hun.txt文件中
    #格式如下:
    #('2016-05-03', '09,12,24,28,29,30,02')
    #('2016-05-01', '06,08,13,14,22,27,10')
    #('2016-04-28', '03,08,13,14,15,30,04')
    #
    fp01 = open("date.txt","r")
    a=[]
    for line01 in fp01:
      a.append(line01.strip('\n'))
      # print a
    fp01.close()
    fp02 = open("num.txt","r")
    b=[]
    for line02 in fp02:
      b.append(line02.strip('\n'))
      # print b
    fp02.close()
    fp = open("hun.txt" ,"a")
    for cc in zip(a,b): #使用zip方法合并
      print cc
      fp.write(str(cc) + '\n')
    fp.close()
#===============================================================================
if __name__=="__main__":
  pageNum = getPageNum(url)
  print pageNum
  getpagetext = getText(url)
  print getpagetext

数据样例:

('2015-03-03', '09,11,16,18,23,24,10')
('2015-03-01', '08,09,10,13,29,30,01')
('2015-02-26', '04,07,10,16,23,25,10')

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python将多个文本文件合并为一个文本的代码(便于搜索)
Mar 13 Python
Python中的Matplotlib模块入门教程
Apr 15 Python
Python中的自省(反射)详解
Jun 02 Python
Python中属性和描述符的正确使用
Aug 23 Python
Python3 replace()函数使用方法
Mar 19 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
python3.x 生成3维随机数组实例
Nov 28 Python
Python动态导入模块和反射机制详解
Feb 18 Python
Python 实现一行输入多个数字(用空格隔开)
Apr 29 Python
Python读取xlsx数据生成图标代码实例
Aug 12 Python
详解Django中views数据查询使用locals()函数进行优化
Aug 24 Python
教你使用一行Python代码玩遍童年的小游戏
Aug 23 Python
Python内建模块struct实例详解
Feb 02 #Python
获取python文件扩展名和文件名方法
Feb 02 #Python
Python字符串格式化%s%d%f详解
Feb 02 #Python
教你用一行Python代码实现并行任务(附代码)
Feb 02 #Python
Python实现Pig Latin小游戏实例代码
Feb 02 #Python
python在线编译器的简单原理及简单实现代码
Feb 02 #Python
使用Python进行AES加密和解密的示例代码
Feb 02 #Python
You might like
收音机指标测试方法及仪器
2021/03/01 无线电
如何过滤高亮显示非法字符
2006/10/09 PHP
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
php实现mysql封装类示例
2014/05/07 PHP
js获取url参数的使用扩展实例
2007/12/29 Javascript
js数据验证集合、js email验证、js url验证、js长度验证、js数字验证等简单封装
2010/05/15 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
js制作带有遮罩弹出层实现登录注册表单特效代码分享
2015/09/05 Javascript
bootstrap-wysiwyg结合ajax实现图片上传实时刷新功能
2016/05/27 Javascript
浅析Bootstrap表格的使用
2016/06/23 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
如何使用JS在HTML中自定义字符串格式化
2017/07/20 Javascript
Vue父子模版传值及组件传值的三种方法
2017/11/27 Javascript
Vue框架之goods组件开发详解
2018/01/25 Javascript
浅谈Vue内置component组件的应用场景
2018/03/27 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
在vue中高德地图引入和轨迹的绘制的实现
2019/10/11 Javascript
Vue结合路由配置递归实现菜单栏功能
2020/06/16 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
微信小程序入门之绘制时钟
2020/10/22 Javascript
javascript实现点击小图显示大图
2020/11/29 Javascript
[40:10]2015国际邀请赛全明星表演赛
2015/08/07 DOTA
Python中基本的日期时间处理的学习教程
2015/10/16 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
Django中信号signals的简单使用方法
2019/07/04 Python
GC是什么?为什么要有GC?
2013/12/08 面试题
公司财务工作总结的自我评价
2013/11/23 职场文书
业务员薪酬管理制度
2014/01/15 职场文书
美容院营销方案
2014/03/05 职场文书
工作建议书范文
2014/05/13 职场文书
酒店管理专业毕业生自我鉴定
2014/09/29 职场文书
新郎接新娘保证书
2015/05/08 职场文书
给老师的保证书怎么写
2015/05/09 职场文书
一文搞懂如何实现Go 超时控制
2021/03/30 Python