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 相关文章推荐
python3+PyQt5重新实现自定义数据拖放处理
Apr 19 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
May 30 Python
Python3分析处理声音数据的例子
Aug 27 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
Jupyter notebook快速入门教程(推荐)
May 18 Python
关于python的缩进规则的知识点详解
Jun 22 Python
python使用隐式循环快速求和的实现示例
Sep 11 Python
Python 创建守护进程的示例
Sep 29 Python
浅析Python 中的 WSGI 接口和 WSGI 服务的运行
Dec 09 Python
用Python的绘图库(matplotlib)绘制小波能量谱
Apr 17 Python
安装pytorch时报sslerror错误的解决方案
May 17 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
磨咖啡豆的密诀
2021/03/03 冲泡冲煮
php防止sql注入示例分析和几种常见攻击正则表达式
2014/01/12 PHP
php禁止某ip或ip地址段访问的方法
2015/02/25 PHP
php计算到指定日期还有多少天的方法
2015/04/14 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
实例讲解PHP页面静态化
2018/02/05 PHP
Laravel实现批量更新多条数据
2020/04/06 PHP
关于Ext中form移除textfield方法:hide(),setVisible(false),remove()
2010/12/02 Javascript
Select标签下拉列表二级联动级联实例代码
2014/02/07 Javascript
不依赖Flash和任何JS库实现文本复制与剪切附源码下载
2015/10/09 Javascript
基于jQuery实现的扇形定时器附源码下载
2015/10/20 Javascript
JavaScript原生xmlHttp与jquery的ajax方法json数据格式实例
2015/12/04 Javascript
详解javascript new的运行机制
2016/01/26 Javascript
AngularJS ui-router刷新子页面路由的方法
2018/07/23 Javascript
JS前端知识点 运算符优先级,URL编码与解码,String,Math,arguments操作整理总结
2019/06/27 Javascript
vue项目强制清除页面缓存的例子
2019/11/06 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
python3访问sina首页中文的处理方法
2014/02/24 Python
Python搭建APNS苹果推送通知推送服务的相关模块使用指南
2016/06/02 Python
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
python学习入门细节知识点
2018/03/29 Python
Python实现的多进程和多线程功能示例
2018/05/29 Python
pandas 实现字典转换成DataFrame的方法
2018/07/04 Python
详解python-图像处理(映射变换)
2019/03/22 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
Django框架之登录后自定义跳转页面的实现方法
2019/07/18 Python
centos7之Python3.74安装教程
2019/08/15 Python
英国最全面的橄榄球联盟门票网站:Live Rugby Tickets
2018/10/06 全球购物
成人毕业生自我鉴定
2013/10/18 职场文书
2014村务公开实施方案
2014/02/25 职场文书
餐饮商业计划书范文
2014/04/29 职场文书
2014党员学习《反腐倡廉警示教育读本》思想汇报
2014/09/13 职场文书
归元寺导游词
2015/02/06 职场文书
离婚代理词范文
2015/05/23 职场文书
导游词之太原天龙山
2020/01/02 职场文书