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根据出生日期返回年龄的方法
Mar 26 Python
Python通过select实现异步IO的方法
Jun 04 Python
python读文件保存到字典,修改字典并写入新文件的实例
Apr 23 Python
详解Django中六个常用的自定义装饰器
Jul 04 Python
Django实战之用户认证(用户登录与注销)
Jul 16 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
在linux系统下安装python librtmp包的实现方法
Jul 22 Python
Django 查询数据库并返回页面的例子
Aug 12 Python
通过python扫描二维码/条形码并打印数据
Nov 14 Python
Python3和PyCharm安装与环境配置【图文教程】
Feb 14 Python
python切片作为占位符使用实例讲解
Feb 17 Python
Python用SSH连接到网络设备
Feb 18 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获取url的函数代码
2011/08/02 PHP
ThinkPHP上使用多说评论插件的方法
2014/10/31 PHP
Apache PHP MySql安装配置图文教程
2016/08/27 PHP
cakephp2.X多表联合查询join及使用分页查询的方法
2017/02/23 PHP
php根据命令行参数生成配置文件详解
2019/03/15 PHP
php 多个变量指向同一个引用($b = &amp;$a)用法分析
2019/11/13 PHP
javascript学习笔记(九)javascript中的原型(prototype)及原型链的继承方式
2011/04/12 Javascript
javascript 使td内容不换行不撑开
2012/11/29 Javascript
JavaScript多并发问题如何处理
2015/10/28 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
使用JS和canvas实现gif动图的停止和播放代码
2017/09/01 Javascript
js使用xml数据载体实现城市省份二级联动效果
2017/11/08 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
12个提高JavaScript技能的概念(小结)
2019/05/09 Javascript
浅入深出Vue之组件使用
2019/07/11 Javascript
Python greenlet实现原理和使用示例
2014/09/24 Python
python类装饰器用法实例
2015/06/04 Python
python爬虫入门教程--利用requests构建知乎API(三)
2017/05/25 Python
python获取多线程及子线程的返回值
2017/11/15 Python
Python字典,函数,全局变量代码解析
2017/12/18 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
python实现朴素贝叶斯算法
2018/11/19 Python
解决python flask中config配置管理的问题
2019/07/26 Python
Python学习笔记之集合的概念和简单使用示例
2019/08/22 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
Python基于requests实现模拟上传文件
2020/04/21 Python
英国运动服、设备及配件网站:DW Sports
2019/12/04 全球购物
英国拖鞋购买网站:Bedroom Athletics
2020/02/28 全球购物
SAZAC的动物连体衣和动物睡衣:Kigurumi Shop
2020/03/14 全球购物
旅游管理毕业生自荐信
2013/11/05 职场文书
十周年庆典策划方案
2014/06/03 职场文书
公司离职证明标准范本
2014/10/05 职场文书
清明祭英烈活动总结
2015/05/11 职场文书
家长会主持词开场白
2015/05/29 职场文书
pytorch fine-tune 预训练的模型操作
2021/06/03 Python
MySQL和Oracle批量插入SQL的通用写法示例
2021/11/17 MySQL