python福利彩随机_看大神如何用Python分析福利彩票的秘密,百万大奖不是梦!
相信福利彩票大家都買過吧,既然學(xué)爬蟲為何不動手寫個小程序抓一下呢,說不定還能發(fā)現(xiàn)福彩的秘密,本篇主要面向于對Python爬蟲感興趣的零基礎(chǔ)的同學(xué),實例為中彩網(wǎng)的福利3D彩票,比較有趣,小伙伴們一起動手開始吧。
環(huán)境:Windows XP
Python :Python 2.7
需要用到的庫:re,xlwt,urllib,collections
1.分析網(wǎng)頁鏈接
1).首先,打開中彩網(wǎng)的福彩3D,查看3D開獎數(shù)據(jù)http://www.zhcw.com/3d/kaijiangshuju/index.shtml?type=0
2).我們用chrome瀏覽器,分析一下網(wǎng)站的結(jié)構(gòu)和源碼
訪問:http://kaijiang.zhcw.com/zhcw/inc/3d/3d_wqhg.jsp
跳轉(zhuǎn)到:
http://kaijiang.zhcw.com/zhcw/html/3d/list.html
經(jīng)過觀察和分析,開獎數(shù)據(jù)鏈接很規(guī)律,如下:第一頁:
http://kaijiang.zhcw.com/zhcw/html/3d/list_1.html
最后一頁:
http://kaijiang.zhcw.com/zhcw/html/3d/list_230.html
3).頁面分析結(jié)果經(jīng)過對開獎數(shù)據(jù)頁面分析,總共有230頁,鏈接也很規(guī)律
思路為從開獎數(shù)據(jù)頁面抓取開獎日期、開獎期數(shù)及開獎號碼等數(shù)據(jù)
然后循環(huán)處理每一頁,最后將數(shù)據(jù)寫入execl表格即可
2.編寫代碼
新手,只要能達(dá)成目的即可,思路就簡單粗暴一點
1).第一步,準(zhǔn)備食材:
食從何來,與炒菜一個道理,首先要準(zhǔn)備食材,要抓取到所有3D的開獎記錄,那么就要獲取到所有開獎頁面的html源碼,簡單粗暴一點,循環(huán)訪問第1頁到第230頁,將所有頁面的html源碼全部獲取到,示例代碼如下:
輸出的網(wǎng)站源碼為:
其實我們的彩票的數(shù)據(jù)都
隱藏在上面這個源碼html文件里面,下面我們的主要工作就是解析html文件就可以啦
2).第二步,開火爆炒
用get_3d_html()獲取到的所有頁面源碼
使用正則表達(dá)式從中提取到開獎等數(shù)據(jù)(開獎日期、開獎期號、開獎號碼)
代碼如下:觀察開獎數(shù)據(jù)頁面源碼,要獲取的數(shù)據(jù)如下圖紅色框內(nèi)的數(shù)據(jù)
構(gòu)造正則:
.?(.?).?(.?).?(.?).?(.?).?(.?)(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.把數(shù)據(jù)寫入表格中
經(jīng)過上面幾步,數(shù)據(jù)已經(jīng)全部清洗完畢,現(xiàn)在把抓取到的開獎數(shù)據(jù)保存進(jìn)excel表格中吧利用xlwt模塊生產(chǎn)一個表格對象(關(guān)于xlwt的用法可以看歷史文章關(guān)于Excel表格如何處理|這篇最用心)
先寫一個表格的頭部標(biāo)題
接著循環(huán)把獲取的數(shù)據(jù)全部寫入表格
最后保存數(shù)據(jù)
4.找出福彩3d的秘密
上面的代碼還有2頁的數(shù)據(jù),現(xiàn)在我們把頁面從range(1,3)改成range(1,22),獲取全年的數(shù)據(jù),然后分析一下,看看數(shù)字背后的秘密:
1.最頻繁出現(xiàn)的數(shù)字
1).找出全年數(shù)字出現(xiàn)頻率最高的3個數(shù)字
2).找出百位數(shù)出現(xiàn)頻率最高的3個數(shù)字
3).找出十位數(shù)出現(xiàn)頻率最高的3個數(shù)字
4).找出個位數(shù)出現(xiàn)頻率最高的3個數(shù)字
全年最火的3個數(shù)字: 8 3 9
Most popular nums: [(u'8', 137), (u'3', 136), (u'9', 136)]
百位數(shù)最火的3個數(shù)字:3 8 1
Top3 in hundreds place: [(u'3', 55), (u'8', 50), (u'1', 45)]
十位數(shù)最火的3個數(shù)字:7,9,5
Top3 in ten place: [(u'7', 50), (u'9', 47), (u'5', 45)]
個位數(shù)最火的3個數(shù)字:9,5,8
Top3 in single place: [(u'9', 57), (u'5', 46), (u'8', 46)]2.每期出現(xiàn)重復(fù)數(shù)字的概率
利用set()簡單的統(tǒng)計一下就可以了,發(fā)現(xiàn)Python分析數(shù)據(jù)簡直太方便了
全年有133次出現(xiàn)重復(fù)數(shù)字,近三分之一的概率
133
Duplicate num percent:31.67%
需要源碼關(guān)注轉(zhuǎn)發(fā),加我QQ:“2507666028”即可找小編獲取源碼。
總結(jié)
以上是生活随笔為你收集整理的python福利彩随机_看大神如何用Python分析福利彩票的秘密,百万大奖不是梦!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: c语言123报数,新人求解一道C语言题。
- 下一篇: python selenium自动化面试