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 相关文章推荐
apache部署python程序出现503错误的解决方法
Jul 24 Python
python中reload(module)的用法示例详解
Sep 15 Python
python爬虫爬取网页表格数据
Mar 07 Python
python traceback捕获并打印异常的方法
Aug 31 Python
PyCharm配置mongo插件的方法
Nov 30 Python
对python的unittest架构公共参数token提取方法详解
Dec 17 Python
浅谈Python 敏感词过滤的实现
Aug 15 Python
pytorch自定义二值化网络层方式
Jan 07 Python
在Tensorflow中实现梯度下降法更新参数值
Jan 23 Python
哈工大自然语言处理工具箱之ltp在windows10下的安装使用教程
May 07 Python
Django serializer优化类视图的实现示例
Jul 16 Python
python的数学算法函数及公式用法
Nov 18 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
合格的PHP程序员必备技能
2015/11/13 PHP
判断是否输入完毕再激活提交按钮
2006/06/26 Javascript
js右键菜单效果代码
2007/07/21 Javascript
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
javascript两段代码,两个小技巧
2010/02/04 Javascript
jquery.pagination.js 无刷新分页实现步骤分享
2012/05/23 Javascript
JavaScript 正则表达式中global模式的特性
2016/02/25 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
10个最优秀的Node.js MVC框架
2017/08/24 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
详解Angular操作cookies方法
2018/06/01 Javascript
微信小程序chooseImage的用法(从本地相册选择图片或使用相机拍照)
2018/08/22 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
详解使用uni-app开发微信小程序之登录模块
2019/05/09 Javascript
Vue + Elementui实现多标签页共存的方法
2019/06/12 Javascript
vue如何实现自定义底部菜单栏
2019/07/01 Javascript
详解vue-template-admin三级路由无法缓存的解决方案
2020/03/10 Javascript
Vue解决移动端弹窗滚动穿透问题
2020/12/15 Vue.js
Python 专题一 函数的基础知识
2017/03/16 Python
Python2随机数列生成器简单实例
2017/09/04 Python
详解如何使用Python编写vim插件
2017/11/28 Python
Python输入二维数组方法
2018/04/13 Python
python对文件目录的操作方法实例总结
2019/06/24 Python
使用pytorch实现可视化中间层的结果
2019/12/30 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
几个CSS3的flex弹性盒模型布局的简单例子演示
2016/05/12 HTML / CSS
解决H5的a标签的download属性下载service上的文件出现跨域问题
2019/07/16 HTML / CSS
移动端HTML5开发神器之vconsole详解
2020/12/15 HTML / CSS
亚洲最大旅游体验平台:KKday
2017/10/21 全球购物
护士自我鉴定范文
2013/10/06 职场文书
七年级历史教学反思
2014/02/05 职场文书
运动会通讯稿150字
2014/02/15 职场文书
同居协议书范本
2014/04/23 职场文书
高中教师先进事迹材料
2014/08/22 职场文书
2016年高校自主招生自荐信范文
2015/03/24 职场文书
带你了解Java中的ForkJoin
2022/04/28 Java/Android