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中的__builtins__内建对象
Jun 21 Python
asyncio 的 coroutine对象 与 Future对象使用指南
Sep 11 Python
Python构建网页爬虫原理分析
Dec 19 Python
详解python 注释、变量、类型
Aug 10 Python
详解python中Numpy的属性与创建矩阵
Sep 10 Python
pycharm 取消默认的右击运行unittest的方法
Nov 29 Python
pandas去除重复列的实现方法
Jan 29 Python
在Pycharm中使用GitHub的方法步骤
Jun 13 Python
python numpy 反转 reverse示例
Dec 04 Python
Python箱型图处理离群点的例子
Dec 09 Python
Python OpenCV实现测量图片物体宽度
May 27 Python
分享python函数常见关键字
Apr 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
PHPWind与Discuz截取字符函数substrs与cutstr性能比较
2011/12/05 PHP
使用ob系列函数实现PHP网站页面静态化
2014/08/13 PHP
PHP实现bitmap位图排序与求交集的方法
2016/07/28 PHP
PHP获取中国时间(上海时区时间)及美国时间的方法
2017/02/23 PHP
PHP实现图片批量打包下载功能
2017/03/01 PHP
YII框架页面缓存操作示例
2019/04/29 PHP
JavaScript中几种常见排序算法小结
2011/02/22 Javascript
javascript中的继承实例代码
2011/04/27 Javascript
Jquery 绑定时间实现代码
2011/05/03 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
2013/04/03 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
深入理解JavaScript系列(36):设计模式之中介者模式详解
2015/03/04 Javascript
JavaScript中的函数声明和函数表达式区别浅析
2015/03/27 Javascript
基于react框架使用的一些细节要点的思考
2017/05/31 Javascript
Webpack之tree-starking 解析
2018/09/11 Javascript
在vue中使用G2图表的示例代码
2019/03/19 Javascript
jQuery创建折叠式菜单
2019/06/15 jQuery
详解JWT token心得与使用实例
2019/08/02 Javascript
vue props 单项数据流实例分享
2020/02/16 Javascript
python的几种开发工具介绍
2007/03/07 Python
python实现Flappy Bird源码
2018/12/24 Python
Django框架模板语言实例小结【变量,标签,过滤器,继承,html转义】
2019/05/23 Python
python登录WeChat 实现自动回复实例详解
2019/05/28 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
Pytorch保存模型用于测试和用于继续训练的区别详解
2020/01/10 Python
keras 自定义loss损失函数,sample在loss上的加权和metric详解
2020/05/23 Python
CSS3 :not()选择器实现最后一行li去除某种css样式
2016/10/19 HTML / CSS
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
英国玛莎百货澳大利亚:Marks & Spencer Australia
2019/08/30 全球购物
意大利体育用品和运动服网上商店:Maxi Sport
2019/09/14 全球购物
MySQL面试题目集锦
2016/04/14 面试题
函授毕业生的自我鉴定
2013/11/26 职场文书
学习委员自我鉴定
2014/01/13 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书
2014年生活老师工作总结
2014/12/23 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书