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多进程编程下线程之间变量的共享问题
May 05 Python
Python smallseg分词用法实例分析
May 28 Python
星球大战与Python之间的那些事
Jan 07 Python
利用python求相邻数的方法示例
Aug 18 Python
Python实现PS滤镜Fish lens图像扭曲效果示例
Jan 29 Python
django数据库migrate失败的解决方法解析
Feb 08 Python
通过python实现随机交换礼物程序详解
Jul 10 Python
django foreignkey外键使用的例子 相当于left join
Aug 06 Python
python无序链表删除重复项的方法
Jan 17 Python
Python拼接字符串的7种方式详解
Mar 19 Python
Python GUI编程学习笔记之tkinter事件绑定操作详解
Mar 30 Python
python爬虫scrapy框架之增量式爬虫的示例代码
Feb 26 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编码规范-php coding standard
2007/03/16 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
ThinkPHP3.1新特性之对Ajax的支持更加完善
2014/06/19 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
解析javascript系统错误:-1072896658的解决办法
2013/07/08 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
在css加载完毕后自动判断页面是否加入css或js文件
2014/09/10 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
JavaScript中实现依赖注入的思路分享
2015/01/15 Javascript
jQuery表单对象属性过滤选择器实例详解
2016/09/13 Javascript
Angular2 父子组件通信方式的示例
2018/01/29 Javascript
详解使用React进行组件库开发
2018/02/06 Javascript
angular项目中bootstrap-datetimepicker时间插件的使用示例
2018/03/15 Javascript
详解在Node.js中发起HTTP请求的5种方法
2019/01/10 Javascript
小程序最新获取用户昵称和头像的方法总结
2019/09/23 Javascript
vue-form表单验证是否为空值的实例详解
2019/10/29 Javascript
npm qs模块使用详解
2020/02/07 Javascript
ng-alain的sf如何自定义部件的流程
2020/06/12 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
python实现图片转字符小工具
2019/04/30 Python
python控制台实现tab补全和清屏的例子
2019/08/20 Python
Series和DataFrame使用简单入门
2019/11/13 Python
在python中利用try..except来代替if..else的用法
2019/12/19 Python
详解用Python调用百度地图正/逆地理编码API
2020/07/02 Python
python Matplotlib数据可视化(1):简单入门
2020/09/30 Python
python自动化测试三部曲之unittest框架的实现
2020/10/07 Python
凌阳科技股份有限公司C++程序员面试题笔试题
2014/11/20 面试题
人力资源管理专业应届生求职信
2013/09/28 职场文书
闭幕式主持词
2014/04/02 职场文书
毕业实习感受与体会
2015/05/26 职场文书
培训班开班主持词
2015/07/02 职场文书
angular异步验证器防抖实例详解
2022/03/31 Javascript