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

相信福利彩票大家都买过吧,既然学爬虫为何不动手写个小程序抓一下呢,说不定还能发现福彩的秘密,本篇主要面向于对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”即可找小编获取源码。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550330.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java是编译型语言还是解释型语言?

首先拿python和C说明,python运行速度慢,和C程序相比非常慢,因为Python是解释型语言,你的代码在执行时会一行一行地被python解释器翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢。而C/C程序是编译…

typedef函数指针_C语言函数指针之回调函数

1 什么是回调函数?首先什么是“回调”呢?我的理解是:把一段可执行的代码像参数传递那样传给其他代码,而这段代码会在某个时刻被调用执行,这就叫做回调。如果代码立即被执行就称为同步回调,如果过后再执行&a…

生成球 使用openMesh 库

简介 使用openmesh生成一个球&#xff0c;采用的是标准球坐标系。 // 生成球 n 最好输入偶数 10 或者 100 #include <iostream> #include <OpenMesh/Core/IO/MeshIO.hh> #include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh> #include<cmath> #d…

oracle存储过程没有返回值,Java调用Oracle存储过程(无返回值)

无返回值&#xff1a;1&#xff1a;创建存储过程此存储过程向表中插入一条数据create or replace procedure demo_procedure(id varchar2,name varchar2,age varchar2,sex varchar2,address varchar2)asbegininsert into system.demo values(id,name,age,sex,address);end;2&am…

python static函数_python函数怎么实现static变量?

展开全部python函数实现static变量具体32313133353236313431303231363533e4b893e5b19e31333365633838如下&#xff1a;def ask_ok(prompt, retries4, complaintYes or no, please!):while True:ok raw_input(prompt)if ok in (y, ye, yes): return Trueif ok in (n, no, nop, …

Linux权限管理、系统进程管理

权限管理 linux系统中分为四种角色 uuser 当前用户 ggroup 同组用户 oother 其他用户 aall 代表所有用户 三种权限 rread 可读 wwrite 可写 xexecute 可执行 通过ls -l(ll)查看文件或者目录的权限 ll a.log -rw-r--r--. 1 root root 16003 Jun 27 09:20 a.log 分析第一部…

fedora 安装oracle 12c,Fedora 12下安装Oracle 11客户端

目标&#xff1a;将oracle-client(v11)安装到rdquo;/opt/oracle/rdquo;下准备好如下三个安装包&#xff0c;放在某个目录下&#xff0c;如&#xff1a;/root/software/ora目标&#xff1a;将Oracle-client(v11)安装到”/opt/oracle/”下准备好如下三个安装包&#xff0c;放在某…

轨迹跟踪主要方法_DELMIA教程:基于指令形式的机器人TCP轨迹局部跟踪方法

上一期为大家介绍了基于工具条中的“TCP Trace”命令按钮的全局TCP轨迹跟踪&#xff0c;之所以称之为全局轨迹跟踪&#xff0c;是因为只要命令被打开&#xff0c;机器人运行的全部轨迹都将实现跟踪。既然有全局TCP轨迹跟踪&#xff0c;那么就一定有局部TCP轨迹跟踪&#xff0c;…

[转帖]开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别

开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别 https://www.geek-workshop.com/thread-1860-1-1.htmlliamjeal电梯直达1# 发表于 2012-9-10 13:41:43 | 只看该作者 |只看大图 因CooCox用户数及影响力越来越大&#xff0c;CooCox团队也逐渐提高了对软件及代码协议的重…

oracle数据库物理结构包含,Oracle - 数据库物理结构

● 一个数据文件只能属于一个数据库● 当数据库空间用完时&#xff0c;数据文件可以按照预定的设置自动扩展。● 一个或多个数据文件形成了数据库中的一种逻辑结构-表空间。当需要时&#xff0c;数据文件中的数据通过数据库操作被读出&#xff0c;并缓存于Oracle的内存结构中。…

python审批流系统_有赞移动关于权限与审批流程的标准化

一、背景有赞移动有weex发布平台、移动配置中心平台、App分发平台、热修复平台等。这些平台都需要发布&#xff0c;而发布就需要规范化&#xff0c;需要审批制度。如果为各个平台开发这个审批流程&#xff0c;看起来是一种浪费。首先想到第一种方案&#xff1a;接入现有的前后端…

生成一个平面矩形网格文件

简介 生成一个平面矩形网格。 代码 // CreateGrid.cpp: 定义控制台应用程序的入口点。 ////#include "stdafx.h" #include <iostream> #include <OpenMesh/Core/IO/MeshIO.hh> #include <OpenMesh/Core/Mesh/TriMesh_ArrayKernelT.hh> #include<…

linux下tomcat脚本,Linux下重启多个 tomcat 服务的脚本(推荐)

由于修改tomcat的配置文件或手动操作数据库数据后&#xff0c;tomcat的缓存和redis的缓存很严重&#xff0c;需要经常重启tomcat来释放缓存&#xff0c;经常就是手动重启。# 1、查找tomcat的进程IDps -ef | grep tomcat# 2、根据路径去查找进程ID&#xff0c;然后逐个杀掉(毕竟…

qt 定时器累加值_零基础入门单片机定时器详解

一、基本定时器介绍在STM32中&#xff0c;基本定时器有TIM6、TIM7等。基本定时器主要包含时基单元&#xff0c;提供16位的计数&#xff0c;能计数0~65535。基本定时器除了计数功能以外&#xff0c;还能输出给DAC模块一个TRGO信号。基本定时器框图如下&#xff1a;二、时基单元介…

生成 一个多边形网格的函数

简介 生成一个多边形网格的函数。 三角形面片判断法线方向 顺时针&#xff0c;表示平面方向向下&#xff1f;&#xff1f; 逆时针&#xff0c;表示平面方向向上&#xff1f;&#xff1f; 代码 // AddPolygon.cpp: 定义控制台应用程序的入口点。 ////#include "stdafx.h&qu…

linux系统怎么设置开机密码,Linux_Linux系统怎么设置开机密码?Linux设置开机密码的方法,为了保证Linux系统的安全,应 - phpStudy...

Linux系统怎么设置开机密码&#xff1f;Linux设置开机密码的方法为了保证Linux系统的安全&#xff0c;应该给系统设置开机密码。注意&#xff0c;“开机密码”和“登录密码”是不同的。本文笔者就和大家分享一下“给Linux设置开机密码”的经验&#xff0c;希望能能对大家有所帮…

jvm 安装位置_简单了解JVM

1、JVM的位置&#xff1a;JVM是在操作系统上面的应用软件JVM虚拟机有三种如下&#xff1a;① Sun公司的HotSpot&#xff1b;    ② BEA公司的JRockit&#xff1b;    ③ IBM公司的J9 JVM&#xff1b;java虚拟机属于第一种&#xff1a;2、JVM的体系结构&#xff1a;3、类…

前端安全之 XSS攻击

参看&#xff1a; XSS的原理分析与解剖 前端安全 -- XSS攻击 web大前端开发中一些常见的安全性问题 1、前言 XSS 是面试时&#xff0c;hr提出来给我的&#xff0c;然后大体的浏览一遍&#xff0c;今天才查阅资料大体了解了它。 XSS 攻击&#xff1a;攻击者向HTML页面传入恶意的…

linux设置命令nmui,Linux网络配置及管理

一、IP、网关、路由、掩码网络间主机的通信是通常是基于TCP/IP协议。数据从A主机发送到网络中的B主机&#xff0c;需要通过层层包装及协议转发&#xff0c;最终通过B主机的IP地址定位&#xff0c;B主机才能最终接收到数据。这个过程很复杂&#xff0c;中间数据的处理是通过TCP/…

anaconda新建python2环境安装不了jupyterlab_在Mac下安装anaconda及配置jupyterLab和PyTorch的方法...

在Mac下安装anaconda及配置jupyterLab和PyTorch的方法1、 首先在anaconda官网上下载anaconda包(国内网速度不算太慢)https://www.anaconda.com/products/individual#macos2、 创建一个新的环境&#xff0c;用于Pytorch的学习conda create –name pytorchpython3.7标蓝部分可以换…