摘要:令人遺憾的是,中獎(jiǎng)?wù)咦罱K未現(xiàn)身領(lǐng)獎(jiǎng),萬元大獎(jiǎng)成為棄獎(jiǎng)。經(jīng)中山市福彩中心查證,這是中國福彩史上金額第二大的棄獎(jiǎng)。根據(jù)彩票管理?xiàng)l例實(shí)施細(xì)則的有關(guān)規(guī)定,這次的萬元棄獎(jiǎng)獎(jiǎng)金將被納入彩票公益金。獲取的數(shù)據(jù)可以保存在本地。
目錄
0 引言
1 環(huán)境
2 需求分析
3 代碼實(shí)現(xiàn)
4 后記
上周被一則新聞?wù)痼@到了,《2454萬元大獎(jiǎng)無人認(rèn)領(lǐng)!福彩史上第二大棄獎(jiǎng)在廣東中山產(chǎn)生 》,在2019年5月2日開獎(jiǎng)的雙色球中,廣東中山一位彩民博中2454萬元,兌獎(jiǎng)時(shí)間截至2019年7月1日。
令人遺憾的是,中獎(jiǎng)?wù)咦罱K未現(xiàn)身領(lǐng)獎(jiǎng),2454萬元大獎(jiǎng)成為棄獎(jiǎng)。經(jīng)中山市福彩中心查證,這是中國福彩史上金額第二大的棄獎(jiǎng)。根據(jù)《彩票管理?xiàng)l例實(shí)施細(xì)則》的有關(guān)規(guī)定,這次的2454萬元棄獎(jiǎng)獎(jiǎng)金將被納入彩票公益金。
一直在為福彩做貢獻(xiàn)的我,啥時(shí)候能攤上這樣的好事啊。于是我用Python生成了一組雙色球的號(hào)碼……
1 環(huán)境操作系統(tǒng):Windows
Python版本:3.7.3
2 需求分析隨機(jī)生成一組雙色球的號(hào)碼,我們可以借助random函數(shù),如下:
import random def ball(): ball_list=[] while 1: a=random.randint(1,33) if a not in ball_list: ball_list.append(a) if len(ball_list)==6: break ball_list.sort() ball_list.append(random.randint(1,16)) print(ball_list) ball()
但要知道,這么搞的話,絲毫不會(huì)有什么中獎(jiǎng)的,因?yàn)樘S機(jī)了……
經(jīng)歷過高考的人,肯定都知道三年模擬五年高考。要知道彩票中獎(jiǎng)概率很低的,所以我們?cè)谶@里先分析下歷年的數(shù)據(jù),借助往年的數(shù)據(jù)來“精準(zhǔn)”地推算下一期中獎(jiǎng)號(hào)碼。
我們通過這個(gè)網(wǎng)站來查詢彩票的歷史開獎(jiǎng)信息。
http://kaijiang.zhcw.com/zhcw...
我們點(diǎn)擊下一頁,看看網(wǎng)址鏈接是否有規(guī)律
http://kaijiang.zhcw.com/zhcw...
http://kaijiang.zhcw.com/zhcw...
http://kaijiang.zhcw.com/zhcw...
http://kaijiang.zhcw.com/zhcw...
http://kaijiang.zhcw.com/zhcw...
不難發(fā)現(xiàn),可以將目標(biāo)網(wǎng)址拆分如下:
url_part = "http://kaijiang.zhcw.com/zhcw/html/ssq/list" url = url_part + "_" + str(i) + ".html"
而 i 對(duì)應(yīng)的正好是頁碼信息,我們借助 記錄下這里的元素信息。 接下來,我們需要抓取每一頁中的具體開獎(jiǎng)信息。我們繼續(xù)通過開發(fā)者工具分析出每期開獎(jiǎng)信息。 我們依次記錄下每期的開獎(jiǎng)日期對(duì)應(yīng)的元素信息: 開獎(jiǎng)的批次對(duì)應(yīng)的元素信息: 中獎(jiǎng)號(hào)碼對(duì)應(yīng)的元素信息: 有了這些元素信息之后,接下來就是代碼的具體實(shí)現(xiàn)。 在這里,我們獲取網(wǎng)頁的請(qǐng)求使用 requests 模塊;解析網(wǎng)址借助 beautifulsoup4 模塊。因?yàn)槎际堑谌侥K,如環(huán)境中沒有可以使用 pip 進(jìn)行安裝。 模塊安裝好之后,進(jìn)行導(dǎo)入 我們需要先在首頁中,拿到頁數(shù)信息 拿組裝后的url發(fā)起請(qǐng)求,并獲取每頁中各期的開獎(jiǎng)信息: 這樣,我們就完成了對(duì)每一頁中各期開獎(jiǎng)數(shù)據(jù)的獲取。獲取的數(shù)據(jù)可以保存在本地。 我們?cè)讷@取每期的開獎(jiǎng)數(shù)據(jù)的同時(shí),記錄下紅藍(lán)球出現(xiàn)的號(hào)碼信息。 統(tǒng)計(jì)出各個(gè)號(hào)碼出現(xiàn)次數(shù)信息: 接下來我們可以根據(jù)紅藍(lán)號(hào)碼出現(xiàn)的頻率進(jìn)行排序,并推測出幾組雙色球號(hào)碼信息: 當(dāng)然了,也可以輸出反序輸出,中獎(jiǎng)號(hào)碼出現(xiàn)頻率較低的幾組,只需要設(shè)置 reverse=True 即可。 這里根據(jù)藍(lán)色球各號(hào)碼出現(xiàn)的次數(shù),作了張直方圖,可以很直觀到藍(lán)色球各號(hào)碼出現(xiàn)的頻率。 有人會(huì)問了,這樣預(yù)測出的中獎(jiǎng)號(hào)碼,中獎(jiǎng)概率究竟有多大呢? 這個(gè),我可說不清楚,只有買了才會(huì)知道……小心錯(cuò)過一個(gè)億喲! 好了,以上就是本篇全部內(nèi)容。 關(guān)注公眾號(hào)「Python專欄」,更多有趣好玩的Python等著你~ 本文全套代碼已上傳至Github:https://github.com/MiracleYou...pip install requests
pip install beautifulsoup4
pip install lxml
import requests
from bs4 import BeautifulSoup
# 發(fā)起請(qǐng)求
basic_url = "http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36"
}
response = requests.get(basic_url, headers=headers, timeout=10)
response.encoding = "utf-8"
htm = response.text
# 解析內(nèi)容
soup = BeautifulSoup(htm, "html.parser")
# 獲取頁數(shù)信息
page = int(soup.find("p", attrs={"class": "pg"}).find_all("strong")[0].text)
接下來,我們就可以根據(jù)規(guī)律組裝好我們的URL:
url_part = "http://kaijiang.zhcw.com/zhcw/html/ssq/list"
for i in range(1, page+1):
url = url_part + "_" + str(i) + ".html"
res = requests.get(url, headers=headers, timeout=10)
res.encoding = "utf-8"
context = res.text
soups = BeautifulSoup(context, "html.parser")
if soups.table is None:
continue
elif soups.table:
table_rows = soups.table.find_all("tr")
for row_num in range(2, len(table_rows)-1):
row_tds = table_rows[row_num].find_all("td")
ems = row_tds[2].find_all("em")
result = row_tds[0].string +", "+ row_tds[1].string +", "+ems[0].string+" "+ems[1].string+" "+ems[2].string+" "+ems[3].string+" "+ems[4].string+" "+ems[5].string+", "+ems[6].string
print(result)
def save_to_file(content):
with open("ssq.txt", "a", encoding="utf-8") as f:
f.write(content + "
")
# 定義兩個(gè)變量, 用于記錄歷史開獎(jiǎng)信息中的紅球、藍(lán)球號(hào)碼信息
red_num = []
blue_num = []
red_num.append(ems[0].string) # 紅色球1
red_num.append(ems[1].string) # 紅色球2
red_num.append(ems[2].string) # 紅色球3
red_num.append(ems[3].string) # 紅色球4
red_num.append(ems[4].string) # 紅色球5
red_num.append(ems[5].string) # 紅色球6
blue_num.append(ems[6].string) # 藍(lán)色球
red_count = Counter(red_num)
blue_count = Counter(blue_num)
# 按照出現(xiàn)頻率順序
red_sorted = sorted(red_count.items(), key=lambda x: x[1], reverse=False)
blue_sorted = sorted(blue_count.items(), key=lambda x: x[1], reverse=False)
red = red_sorted[0:6]
blue = blue_sorted[0:3]
red = list(map(lambda x:x[0], red))
blue = list(map(lambda x:x[0], blue))
red.sort()
blue.sort()
print("號(hào)碼高頻-1注:"+str(red)+" | "+blue[0])
print("號(hào)碼高頻-2注:"+str(red)+" | "+blue[1])
print("號(hào)碼高頻-3注:"+str(red)+" | "+blue[2])
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/45110.html
摘要:很多小白同事,沒有開戶的也紛紛開戶。但如果你是小白,是個(gè)上班族,手里資金有限,也沒時(shí)間盯盤的人我建議你還是不要參與,進(jìn)去之后十有八九會(huì)當(dāng)了韭菜。不如把時(shí)間用來提升能力,保持好心態(tài),不要被浮躁和賺快錢所影響。 showImg(https://segmentfault.com/img/bVbphvR?w=496&h=290); 最近我發(fā)現(xiàn)很多qq 群、微信群、還有身邊的同事都在談?wù)摴善薄?...
摘要:并返回合理錯(cuò)誤提示。如果不在則再輸入密碼,成功則增加用戶信息到文件中,密碼進(jìn)行加密處理。作業(yè)增加用戶名,密碼的合法化判斷和錯(cuò)誤提示。 課時(shí)5:字符串-基礎(chǔ) 切片,索引 s = use python do somenthing s[1],s[-1],s[1:3],s[1:6:2],s[1:],s[:-1],s[:] spilt,join,[start:stop:step] 常用方法集...
摘要:應(yīng)屆生零基礎(chǔ)可以學(xué)習(xí)軟件測試嗎俗話說,人怕入錯(cuò)行。霸哥這里分別從入行難度入行方式行業(yè)前景薪資待遇四個(gè)方面來分析一下。目前市場上的測試人員,一部分是企業(yè)自己培養(yǎng)的,另一部分是來自培訓(xùn)機(jī)構(gòu)。軟件測試的行業(yè)門檻低,市場需求量大。 ...
閱讀 2377·2021-11-08 13:13
閱讀 1321·2021-10-09 09:41
閱讀 1762·2021-09-02 15:40
閱讀 3252·2021-08-17 10:13
閱讀 2602·2019-08-29 16:33
閱讀 3203·2019-08-29 13:17
閱讀 3187·2019-08-29 11:00
閱讀 3348·2019-08-26 13:40