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操作CouchDB的方法
Oct 08 Python
Python使用Flask框架同时上传多个文件的方法
Mar 21 Python
Python环境下搭建属于自己的pip源的教程
May 05 Python
python爬虫实现教程转换成 PDF 电子书
Feb 19 Python
使用python实现knn算法
Dec 20 Python
Python爬虫设置代理IP(图文)
Dec 23 Python
python3利用ctypes传入一个字符串类型的列表方法
Feb 12 Python
python中的colorlog库使用详解
Jul 05 Python
python多进程(加入进程池)操作常见案例
Oct 21 Python
python装饰器原理与用法深入详解
Dec 19 Python
django 实现后台从富文本提取纯文本
Jul 02 Python
Python自动化之批量处理工作簿和工作表
Jun 03 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
frename PHP 灵活文件命名函数 frename
2009/09/09 PHP
php设计模式 Facade(外观模式)
2011/06/26 PHP
php四种基础算法代码实例
2013/10/29 PHP
ThinkPHP CURD方法之data方法详解
2014/06/18 PHP
CodeIgniter多语言实现方法详解
2016/01/20 PHP
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
Javascript delete 引用类型对象
2013/11/01 Javascript
javascript数组操作总结和属性、方法介绍
2014/04/05 Javascript
jQuery实现Flash效果上下翻动的中英文导航菜单代码
2015/09/22 Javascript
基于javascript实现随机颜色变化效果
2016/01/14 Javascript
jquery判断对象是否为空并遍历对象的简单实例
2016/07/26 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
深入浅析Vue.js计算属性和侦听器
2018/05/05 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
使用js和canvas实现时钟效果
2020/09/08 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
python中使用smtplib和email模块发送邮件实例
2014/04/22 Python
Windows下安装python2.7及科学计算套装
2015/03/05 Python
Python图像灰度变换及图像数组操作
2016/01/27 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
对TensorFlow的assign赋值用法详解
2018/07/30 Python
python中dict()的高级用法实现
2019/11/13 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
东方电视购物:东方CJ
2016/10/12 全球购物
英国最大的婴儿监视器网上商店:Baby Monitors Direct
2018/04/24 全球购物
利达恒信公司.NET笔试题面试题
2016/03/05 面试题
保洁公司服务承诺书
2014/05/28 职场文书
追悼会答谢词
2015/01/05 职场文书
革命电影观后感
2015/06/18 职场文书
2015国庆节感想
2015/08/04 职场文书
MySQL数据库10秒内插入百万条数据的实现
2021/11/01 MySQL
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS
Vue3中的Refs和Ref详情
2021/11/11 Vue.js