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中的greenlet包实现并发编程的入门教程
Apr 16 Python
python机器学习之KNN分类算法
Aug 29 Python
python实现祝福弹窗效果
Apr 07 Python
python多线程下信号处理程序示例
May 31 Python
Django集成CAS单点登录的方法示例
Jun 10 Python
Python实现微信小程序支付功能
Jul 25 Python
python opencv调用笔记本摄像头
Aug 28 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
Python Scrapy框架第一个入门程序示例
Feb 05 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
Mar 03 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
pandas中pd.groupby()的用法详解
Jun 16 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
jq的get传参数在utf-8中乱码问题的解决php版
2008/07/23 PHP
ajax 的post方法实例(带循环)
2011/07/04 PHP
php的闭包(Closure)匿名函数详解
2015/02/22 PHP
YII框架学习笔记之命名空间、操作响应与视图操作示例
2019/04/30 PHP
PHP配置文件php.ini中打开错误报告的设置方法
2015/01/09 PHP
JavaScript开发Chrome浏览器扩展程序UI的教程
2016/05/16 Javascript
浅谈js控制li标签排序问题 js调用php函数的方法
2016/10/16 Javascript
AngularJS入门教程之MVC架构实例分析
2016/11/01 Javascript
Bootstrap导航条鼠标悬停下拉菜单
2017/01/04 Javascript
jQuery编写设置和获取颜色的插件
2017/01/09 Javascript
详解webpack介绍&amp;安装&amp;常用命令
2017/06/29 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
微信小程序动态增加按钮组件
2018/09/14 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
[01:21]DOTA2 新英雄 森海飞霞
2020/12/18 DOTA
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
Python简单实现enum功能的方法
2016/04/25 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
Python编程求解二叉树中和为某一值的路径代码示例
2018/01/04 Python
python Tkinter的图片刷新实例
2019/06/14 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
python如何实现从视频中提取每秒图片
2020/10/22 Python
Python3中urlencode和urldecode的用法详解
2019/07/23 Python
Python imageio读取视频并进行编解码详解
2019/12/10 Python
对Tensorflow中tensorboard日志的生成与显示详解
2020/02/04 Python
pycharm解决关闭flask后依旧可以访问服务的问题
2020/04/03 Python
python使用for...else跳出双层嵌套循环的方法实例
2020/05/17 Python
Python中正则表达式对单个字符,多个字符和匹配边界等使用
2021/01/27 Python
瑞士灯具购物网站:Lampenwelt.ch
2018/07/08 全球购物
意大利文具和办公产品在线商店:Y-Office
2020/02/27 全球购物
英国珠宝和手表专家:Pleasance & Harper
2020/10/21 全球购物
大学应届毕业生个人求职信
2013/09/23 职场文书
党员先锋岗事迹材料
2014/05/08 职场文书
Windows Server 2019 安装DHCP服务及相关配置
2022/04/28 Servers