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脚本生成Android SALT扰码的方法
Sep 18 Python
python 生成器协程运算实例
Sep 04 Python
python使用webdriver爬取微信公众号
Aug 31 Python
解决Django中多条件查询的问题
Jul 18 Python
PyTorch 对应点相乘、矩阵相乘实例
Dec 27 Python
Pyecharts绘制全球流向图的示例代码
Jan 08 Python
python实现人机猜拳小游戏
Feb 03 Python
在django admin详情表单显示中添加自定义控件的实现
Mar 11 Python
python中JWT用户认证的实现
May 18 Python
python如何建立全零数组
Jul 19 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 Python
Python实现自动整理文件的脚本
Dec 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
第九节 绑定 [9]
2006/10/09 PHP
解决dede生成静态页和动态页转换的一些问题,及火车采集入库生成动态的办法
2007/03/29 PHP
php5 mysql分页实例代码
2008/04/10 PHP
PHP CURL获取返回值的方法
2014/05/04 PHP
ThinkPHP安装和设置
2015/07/27 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
通过JAVASCRIPT读取ASP设定的COOKIE
2007/02/15 Javascript
jQuery在IE下使用未闭合的xml代码创建元素时的Bug介绍
2012/01/10 Javascript
Ionic如何创建APP项目
2016/06/03 Javascript
每日十条JavaScript经验技巧(一)
2016/06/23 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
Vue.js实现模拟微信朋友圈开发demo
2017/04/20 Javascript
vue.js全局API之nextTick全面解析
2017/07/07 Javascript
JavaScript常用数组操作方法,包含ES6方法
2020/05/10 Javascript
微信小程序学习笔记之登录API与获取用户信息操作图文详解
2019/03/29 Javascript
vue2.0自定义指令示例代码详解
2019/04/25 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
Python的Bottle框架中实现最基本的get和post的方法的教程
2015/04/30 Python
Python中的if、else、elif语句用法简明讲解
2016/03/11 Python
Python探索之爬取电商售卖信息代码示例
2017/10/27 Python
详解python函数传参是传值还是传引用
2018/01/16 Python
python UDP(udp)协议发送和接收的实例
2019/07/22 Python
python定时任务 sched模块用法实例
2019/11/04 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
解决pycharm安装第三方库失败的问题
2020/05/09 Python
Windows下pycharm安装第三方库失败(通用解决方案)
2020/09/17 Python
详解CSS3的box-shadow属性制作边框阴影效果的方法
2016/05/10 HTML / CSS
C/C++ 笔试、面试题目大汇总
2015/11/21 面试题
介绍一下Java中的static关键字
2012/05/12 面试题
销售个人求职信范文
2014/04/28 职场文书
安全承诺书格式
2014/05/21 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
带你学习MySQL执行计划
2021/05/31 MySQL
浅谈自定义校验注解ConstraintValidator
2021/06/30 Java/Android
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers