python 爬取中彩网双色球开奖数据,预测下一期开奖号码

爬取中彩网双色球开奖数据:

import requests
from bs4 import BeautifulSoup
from collections import Counter

# 获取内容
res = requests.get('http://kaijiang.zhcw.com/zhcw/html/ssq/list_1.html', timeout = 30)
res.encoding = 'utf-8'
htm = res.text
# 解析内容
soup = BeautifulSoup(htm, 'html.parser')
# url前缀
prefix_url = 'http://kaijiang.zhcw.com/zhcw/html/ssq/list'
#获取总页数
total = int(soup.find('p', attrs={"class": "pg"}).find_all('strong')[0].text)
#将获取的信息,写进文件
local_file = open('双色球.txt', 'w')

red_num = [] #历史上开出的红球
blue_num = [] #历史上开出的蓝球

# 分页获取每一页的开奖信息
for page_num in range(1, total+1):
    t_url = prefix_url + '_' + str(page_num) + '.html'
    print(t_url)
    res2 = requests.get(t_url, timeout = 30)
    res2.encoding = 'utf-8'
    page_context = res2.text
    page_soup = BeautifulSoup(page_context, 'html.parser')
    if page_soup.table is None:
        continue
    elif page_soup.table:
        table_rows = page_soup.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
            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
            local_file.write(result+'\n')
            print(result)
            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) # 蓝球
    else:
        continue

local_file.close

red_count = Counter(red_num)
blue_count = Counter(blue_num)
# 按照出现频率顺序
red_count_sorted = sorted(red_count.items(), key=lambda pair: pair[1], reverse=False)
blue_count_sorted = sorted(blue_count.items(), key=lambda pair: pair[1], reverse=False)

print(red_count_sorted)
print(blue_count_sorted)

ssq_red = red_count_sorted[0:6]
ssq_blue = blue_count_sorted[0:3]
print(list(map(lambda item:item[0], ssq_red)))
print(list(map(lambda item:item[0], ssq_blue)))
ssq_red = list(map(lambda item:item[0], ssq_red))
ssq_blue = list(map(lambda item:item[0], ssq_blue))
ssq_red.sort()
ssq_blue.sort()
print('顺选-1:'+str(ssq_red)+'|'+ssq_blue[0])
print('顺选-2:'+str(ssq_red)+'|'+ssq_blue[1])
print('顺选-3:'+str(ssq_red)+'|'+ssq_blue[2])
print('------------------------------------------------------------------------------')
# 按照出现频率倒序
red_count_sorted = sorted(red_count.items(), key=lambda pair: pair[1], reverse=True)
blue_count_sorted = sorted(blue_count.items(), key=lambda pair: pair[1], reverse=True)

print(red_count_sorted)
print(blue_count_sorted)

ssq_red = red_count_sorted[0:6]
ssq_blue = blue_count_sorted[0:3]
print(list(map(lambda item:item[0], ssq_red)))
print(list(map(lambda item:item[0], ssq_blue)))
ssq_red = list(map(lambda item:item[0], ssq_red))
ssq_blue = list(map(lambda item:item[0], ssq_blue))
ssq_red.sort()
ssq_blue.sort()
print('反选-1:'+str(ssq_red)+'|'+ssq_blue[0])
print('反选-2:'+str(ssq_red)+'|'+ssq_blue[1])
print('反选-3:'+str(ssq_red)+'|'+ssq_blue[2])

预测结果:

顺选-1:['05', '12', '15', '24', '29', '33']|04
顺选-2:['05', '12', '15', '24', '29', '33']|08
顺选-3:['05', '12', '15', '24', '29', '33']|15
------------------------------------------------------
反选-1:['03', '06', '11', '14', '18', '19']|11
反选-2:['03', '06', '11', '14', '18', '19']|12
反选-3:['03', '06', '11', '14', '18', '19']|16
以下是一个使用Python进行双色球预测的代码示例: ```python # 导入所需库 from sklearn.linear_model import LogisticRegression # 定义线性回归模型 def linear_model_test(X, Y, predict_value): regr = LogisticRegression() regr.fit(X, Y) predict_outcome = regr.predict(predict_value) predictions = {} predictions\['intercept'\] = regr.intercept_ predictions\['coefficient'\] = regr.coef_ predictions\['predicted_value'\] = predict_outcome return predictions # 使用预测结果函数进行预测 get_predicted_num(data, 'r1', 1) # 预测红1 get_predicted_num(data, 'r2', 2) # 预测2 get_predicted_num(data, 'r3', 3) # 预测红3 get_predicted_num(data, 'r4', 4) # 预测红4 get_predicted_num(data, 'r5', 5) # 预测红5 get_predicted_num(data, 'r6', 6) # 预测红6 get_predicted_num(data, '蓝球', 7) # 预测蓝7 # 绘制饼图 x = blue_ball_count.index.tolist() y = blue_ball_count.values.tolist() pie = ( Pie() .add("", \[list(z) for z in zip(x, y)\]) ) pie.render_notebook() ``` 请注意,这只是一个示例代码,具体的预测结果和绘图方法可能需要根据实际情况进行调整和修改。 #### 引用[.reference_title] - *1* *2* *3* [用Python预测双色球福利彩票中奖号码(请不要当真)](https://blog.csdn.net/weixin_58610844/article/details/119425899)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值