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  连接字符串(join %)
Sep 06 Python
Python Mysql数据库操作 Perl操作Mysql数据库
Jan 12 Python
python中元类用法实例
Oct 10 Python
用Python实现web端用户登录和注册功能的教程
Apr 30 Python
如何在python字符串中输入纯粹的{}
Aug 22 Python
浅谈python3发送post请求参数为空的情况
Dec 28 Python
判断python对象是否可调用的三种方式及其区别详解
Jan 31 Python
python实发邮件实例详解
Nov 11 Python
关于ZeroMQ 三种模式python3实现方式
Dec 23 Python
python实现扫雷游戏
Mar 03 Python
python 利用matplotlib在3D空间中绘制平面的案例
Feb 06 Python
python 定义函数 返回值只取其中一个的实现
May 21 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网页游戏学习之Xnova(ogame)源码解读(十二)
2014/06/25 PHP
php使用ZipArchive提示Fatal error: Class ZipArchive not found in的解决方法
2014/11/04 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
php输出金字塔的2种实现方法
2014/12/16 PHP
PHP自带ZIP压缩、解压缩类ZipArchiv使用指南
2015/03/03 PHP
phpmyadmin下载、安装、配置教程
2017/05/16 PHP
麦鸡的TAB切换功能结合了javascript和css
2007/12/17 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
实现无刷新联动例子汇总
2015/05/20 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
loading动画特效小结
2017/01/22 Javascript
js 简易版滚动条实例(适用于移动端H5开发)
2017/06/26 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
基于form-data请求格式详解
2019/10/29 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
vue实现评价星星功能
2020/06/30 Javascript
解决vue cli4升级sass-loader(v8)后报错问题
2020/07/30 Javascript
Linux下Python获取IP地址的代码
2014/11/30 Python
Python正则表达式完全指南
2017/05/25 Python
基于Numpy.convolve使用Python实现滑动平均滤波的思路详解
2019/05/16 Python
详解python websocket获取实时数据的几种常见链接方式
2019/07/01 Python
python Manager 之dict KeyError问题的解决
2019/12/21 Python
Python解析微信dat文件的方法
2020/11/30 Python
详解通过变换矩阵实现canvas的缩放功能
2019/01/14 HTML / CSS
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
三年大学自我鉴定
2014/01/16 职场文书
违反学校规定检讨书
2014/01/18 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
服务承诺书范文
2014/05/19 职场文书
助人为乐好少年事迹材料
2014/08/18 职场文书
Python爬虫基础讲解之请求
2021/05/13 Python
MySQL数据库压缩版本安装与配置详细教程
2021/05/21 MySQL
Spring Data JPA的Audit功能审计数据库的变更
2021/06/26 Java/Android
QT连接MYSQL数据库的详细步骤
2021/07/07 MySQL