相信福利彩票大家都买过吧,既然学爬虫为何不动手写个小程序抓一下呢,说不定还能发现福彩的秘密,本篇主要面向于对Python爬虫感兴趣的零基础的同学,实例为中彩网的福利3D彩票,比较有趣,小伙伴们一起动手开始吧。

环境:Windows XP

Python :Python 2.7

需要用到的库:re,xlwt,urllib,collections

1.分析网页链接

1).首先,打开中彩网的福彩3D,查看3D开奖数据http://www.zhcw.com/3d/kaijiangshuju/index.shtml?type=0

2).我们用chrome浏览器,分析一下网站的结构和源码

访问:http://kaijiang.zhcw.com/zhcw/inc/3d/3d_wqhg.jsp

跳转到:

http://kaijiang.zhcw.com/zhcw/html/3d/list.html

经过观察和分析,开奖数据链接很规律,如下:第一页:

http://kaijiang.zhcw.com/zhcw/html/3d/list_1.html

最后一页:

http://kaijiang.zhcw.com/zhcw/html/3d/list_230.html

3).页面分析结果经过对开奖数据页面分析,总共有230页,链接也很规律

思路为从开奖数据页面抓取开奖日期、开奖期数及开奖号码等数据

然后循环处理每一页,最后将数据写入execl表格即可

2.编写代码

新手,只要能达成目的即可,思路就简单粗暴一点

1).第一步,准备食材:

食从何来,与炒菜一个道理,首先要准备食材,要抓取到所有3D的开奖记录,那么就要获取到所有开奖页面的html源码,简单粗暴一点,循环访问第1页到第230页,将所有页面的html源码全部获取到,示例代码如下:

输出的网站源码为:

其实我们的彩票的数据都

隐藏在上面这个源码html文件里面,下面我们的主要工作就是解析html文件就可以啦

2).第二步,开火爆炒

用get_3d_html()获取到的所有页面源码

使用正则表达式从中提取到开奖等数据(开奖日期、开奖期号、开奖号码)

代码如下:观察开奖数据页面源码,要获取的数据如下图红色框内的数据

构造正则:

.?(.?).?(.?).?(.?).?(.?).?(.?)

(u'2017-08-23', u'2017228', u'5', u'3', u'5')

(u'2017-08-22', u'2017227', u'8', u'8', u'5')

(u'2017-08-21', u'2017226', u'9', u'0', u'3')

(u'2017-08-20', u'2017225', u'8', u'0', u'1')

(u'2017-08-19', u'2017224', u'2', u'6', u'5')

(u'2017-08-18', u'2017223', u'7', u'7', u'8')

(u'2017-08-17', u'2017222', u'7', u'3', u'1')

(u'2017-08-16', u'2017221', u'8', u'5', u'7')

(u'2017-08-15', u'2017220', u'2', u'8', u'7')

(u'2017-08-14', u'2017219', u'5', u'1', u'3')

3.把数据写入表格中

经过上面几步,数据已经全部清洗完毕,现在把抓取到的开奖数据保存进excel表格中吧利用xlwt模块生产一个表格对象(关于xlwt的用法可以看历史文章关于Excel表格如何处理|这篇最用心)

先写一个表格的头部标题

接着循环把获取的数据全部写入表格

最后保存数据

4.找出福彩3d的秘密

上面的代码还有2页的数据,现在我们把页面从range(1,3)改成range(1,22),获取全年的数据,然后分析一下,看看数字背后的秘密:

1.最频繁出现的数字

1).找出全年数字出现频率最高的3个数字

2).找出百位数出现频率最高的3个数字

3).找出十位数出现频率最高的3个数字

4).找出个位数出现频率最高的3个数字

全年最火的3个数字: 8 3 9

Most popular nums: [(u'8', 137), (u'3', 136), (u'9', 136)]

百位数最火的3个数字:3 8 1

Top3 in hundreds place: [(u'3', 55), (u'8', 50), (u'1', 45)]

十位数最火的3个数字:7,9,5

Top3 in ten place: [(u'7', 50), (u'9', 47), (u'5', 45)]

个位数最火的3个数字:9,5,8

Top3 in single place: [(u'9', 57), (u'5', 46), (u'8', 46)]2.每期出现重复数字的概率

利用set()简单的统计一下就可以了,发现Python分析数据简直太方便了

全年有133次出现重复数字,近三分之一的概率

133

Duplicate num percent:31.67%

需要源码关注转发,加我QQ:“2507666028”即可找小编获取源码。

python福利彩随机_看大神如何用Python分析福利彩票的秘密,百万大奖不是梦!相关推荐

  1. python大神和小白代码_看大神6行代码如何带领小白快速入门Python爬虫?

    原标题:看大神6行代码如何带领小白快速入门Python爬虫? 可能是小编本身就有一定的基础!当然我没有瞧不起小白的看法,知识觉得要入门一门编程语言确实比较简单,而且小编本身也是从小白过来的,但是当初接 ...

  2. python 保存本地乱码_请教大神,如何解决保存后的文件的乱码问题

    马上注册,结交更多好友,享用更多功能^_^ 您需要 登录 才可以下载或查看,没有帐号?立即注册 x #!/usr/local/bin/python #-*-coding:utf-8-*- #Get m ...

  3. python慢在哪里_求大神分析一下我的python脚本慢在哪里?

    请大神们分析下这个python脚本为什么会运行这么慢. 初衷: 公司有个料号系统, 在网站上输入料号就能查询相关的资料, 一般情况下, 我会ctrl+c, 打开网站, ctrl+v, 点击查询, 得到 ...

  4. python释放变量内存_看完2019年阿里巴巴Python面试题详解,月薪3万不是梦

    很多人想自学Python找工作,下面给大家分享一部分阿里巴巴的Python开发工程师的面试题目: 概念理解类题目: 1.请说一下你对迭代器和生成器的区别? 答:(1)迭代器是一个更抽象的概念,任何对象 ...

  5. python 测试字符串类型_【教程】如何用Python中的chardet去检测字符编码类型

    [背景] 之前已经使用过chardet了,也算用了不少次了. 之前也写过和chardet相关的: 但是没写教程,举例说明如何使用. 现在去举例解释解释. [python示例代码演示如何用chardet ...

  6. python运行报错_请教大神python运行书上源码报错,请指点,谢谢

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 源码:# coding: utf-8 import sys, os sys.path.append(os.pardir) # 为了导入父目录的文件而进行的 ...

  7. python开发教程视频教程_金牌大神讲师Alex带你学Python 153节课带你轻松学透Python开发视频教程_IT教程网...

    (1)\第一章:目录中文件数:29个 ├─01课程介绍(一).mp4 ├─02课程介绍(二)-Python与其他语言的区别.mp4 ├─03课程介绍(三)-Python生态圈.mp4 ├─04课程介绍 ...

  8. 用什么表示python异常_求大神给讲讲python的异常问题!以下是我的代码!没看出来有什么不同的呀?...

    importtime#引进time因为这里包含了线程问题try:#我试图f=file("D:/dooo.txt")#指定文件路径whileTrue:#while循环后面是布尔表达式 ...

  9. python 爬取电子书_看kindle网站电子书用Python爬取下载

    一个下载看kindle(kankindle.com)的所有电子书的python脚本,程序会自动下载首页部分13页的所有电子书,下载到ebook目录下,程序会检测是否下载过. #!/usr/bin/en ...

最新文章

  1. CS131专题-4:拟合(最小二乘、RANSAC、霍夫变换)
  2. n2n linux,n2n安装
  3. 编译原理 python_Python局部变量编译原理
  4. [SCOI2003]字符串折叠
  5. 谈谈C语言中的杂项运算符
  6. java 日志设计_Java日志设计实践(3) - 开发篇
  7. mysql 可重复读 更新覆盖_Mysql事务隔离级别之可重复读
  8. double转换long的疑问
  9. 多元线性回归模型检验-续上篇
  10. js上传文件转二进制格式
  11. 江苏省小高考计算机考试,江苏省小高考考几门
  12. 2-14-Multiple Exemplars-based Hallucination for Face Super-resolution and Editing(ACCV2020)
  13. (个人翻译)Scrivener交互式手册中文版FowWindows 03基础操作
  14. IDEA 2019.1 注册码激活
  15. 棋类游戏-五子棋小游戏
  16. SQL Server向上取整、向下取整、四舍五入解析说明
  17. 华为[ENSP]常用清除配置命令及保存命令
  18. 解决ubuntu18.04下ibus-libpinyin 拼音无法选择除第一个的候选词问题以及中英文切换问题
  19. 爬了深圳3W+二手房我发现了这些秘密
  20. Appium常用操作及H5页面元素定位

热门文章

  1. 算法系列之图--DFS
  2. 整合apache和JBoss,配置虚拟主机
  3. 485串口测试工具软件下载_串口调试助手详细讲解(结合实操),通讯问题不再是问题...
  4. 一篇文章解释struts常用功能
  5. go 写文件_「go」 项目多个文件编程
  6. python判断是否为完全数_Python识别完美数
  7. java linux 服务_java项目部署Linux服务器几种启动方式总结经验
  8. json转string示例_C.示例中的String.Copy()方法
  9. Java FilterInputStream reset()方法与示例
  10. Java ProcessBuilder environment()方法与示例