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元组操作实例解析
Sep 23 Python
Python中decorator使用实例
Apr 14 Python
使用Python的内建模块collections的教程
Apr 28 Python
使用Python制作获取网站目录的图形化程序
May 04 Python
Python中turtle作图示例
Nov 15 Python
Python实现的归并排序算法示例
Nov 21 Python
Python中的TCP socket写法示例
May 11 Python
python 与服务器的共享文件夹交互方法
Dec 27 Python
python命令行参数用法实例分析
Jun 25 Python
python自动化工具之pywinauto实例详解
Aug 26 Python
Python实现语音识别和语音合成功能
Sep 20 Python
python基于socket实现的UDP及TCP通讯功能示例
Nov 01 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
深入file_get_contents与curl函数的详解
2013/06/25 PHP
浅谈php数组array_change_key_case() 函数和array_chunk()函数
2016/10/22 PHP
PHP实现的统计数据功能详解
2016/12/06 PHP
PHP实现打包zip并下载功能
2018/06/12 PHP
jquery text()要注意啦
2009/10/30 Javascript
Wordpress ThickBox 点击图片显示下一张图的修改方法
2010/12/11 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
基于jQuery实现左右图片轮播(原理通用)
2015/12/24 Javascript
JavaScript事件 &quot;事件对象&quot;的注意要点
2016/01/14 Javascript
JavaScript中数组去除重复的三种方法
2016/04/22 Javascript
RequireJS使用注意细节
2016/05/15 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(一)
2016/05/17 Javascript
详解vue跨组件通信的几种方法
2017/06/15 Javascript
微信小程序出现wx.navigateTo页面不跳转问题的解决方法
2017/12/26 Javascript
在 vue-cli v3.0 中使用 SCSS/SASS的方法
2018/06/14 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
2020/01/18 Javascript
使用nodejs实现JSON文件自动转Excel的工具(推荐)
2020/06/24 NodeJs
[26:52]LGD vs EG 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/18 DOTA
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
Python输出带颜色的字符串实例
2017/10/10 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
python爬虫之urllib,伪装,超时设置,异常处理的方法
2018/12/19 Python
对python函数签名的方法详解
2019/01/22 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
matplotlib实现数据实时刷新的示例代码
2021/01/05 Python
全球最大的服务市场:Fiverr
2017/01/03 全球购物
Boston Proper官网:美国女装品牌
2017/10/30 全球购物
高职教师先进事迹材料
2014/08/24 职场文书
2014县政府领导班子三严三实对照检查材料思想汇报
2014/09/26 职场文书
2014年文秘工作总结
2014/11/25 职场文书
2015年材料员工作总结
2015/04/30 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js
springboot 多数据源配置不生效遇到的坑及解决
2021/11/17 Java/Android
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技