【小白学爬虫】用Python分析福彩3D|发现数字的秘密

本文向Python初学者介绍如何使用爬虫抓取中彩网的福利3D彩票数据,通过分析网页链接、编写代码抓取HTML源码,再用正则表达式提取开奖信息,最后将数据写入Excel表格。通过全年的数据分析,找出最频繁出现的数字和重复数字的概率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

img

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

img

  • 访问:

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

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

  • 第一页:

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源码全部获取到,示例代码如下:

img

输出的网站源码为:

img

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

2).第二步,开火爆炒

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

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

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

img

构造正则:

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

img

>>

(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表格中吧

img

  • 利用xlwt模块生产一个表格对象(关于xlwt的用法可以看历史文章关于Excel表格如何处理|这篇最用心)
  • 先写一个表格的头部标题
  • 接着循环把获取的数据全部写入表格
  • 最后保存数据

img

4.找出福彩3d的秘密

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

1.最频繁出现的数字

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

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

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

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

img

>>

全年最火的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.每期出现重复数字的概率

img

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

>>

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

133

Duplicate num percent:31.67%

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python学习大纲

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python必备开发工具

在这里插入图片描述

三、入门学习视频

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。在这里插入图片描述

五、python副业兼职与全职路线

在这里插入图片描述

在这里插入图片描述

👉[[CSDN大礼包:《python兼职资源&全套学习资料》免费分享]]安全链接,放心点击

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值