【Python爬虫】用45行Python代码爬取双色球往期开奖号码 |
您所在的位置:网站首页 › 双色球18033期开奖号码 › 【Python爬虫】用45行Python代码爬取双色球往期开奖号码 |
利用爬虫抓取双色球开奖号码,获取完整数据,简洁45行代码实现,更新时间2023-06-28 这是网上的数据,怎么将它爬取下来 它将只爬取最近30期的双色球开奖号码,并将结果写入到名为 “双色球开奖结果.csv” 的文件中。 import requests import os from bs4 import BeautifulSoup def download(url, page): html = requests.get(url).text soup = BeautifulSoup(html, 'html.parser') list = soup.select('div.ball_box01 ul li') ball = [] for li in list: ball.append(li.string) write_to_excel(page, ball) print(f"第{page}期开奖结果录入完成") def write_to_excel(page, ball): f = open('双色球开奖结果.csv', 'a', encoding='utf_8_sig') f.write(f'第{page}期,{ball[0]},{ball[1]},{ball[2]},{ball[3]},{ball[4]},{ball[5]},{ball[6]}\n') f.close() def turn_page(): url = "http://kaijiang.500.com/ssq.shtml" html = requests.get(url).text soup = BeautifulSoup(html, 'html.parser') pageList = soup.select("div.iSelectList a") # 获取最近30期的页码 recent_pages = pageList[:30] for p in recent_pages: url = p['href'] page = p.string download(url, page) def main(): if os.path.exists('双色球开奖结果.csv'): os.remove('双色球开奖结果.csv') turn_page() if __name__ == '__main__': main()
生成的表格打开验证数据正确性 非常好,下面写出神经网络进行预测 import pandas as pd import numpy as np from sklearn.ensemble import RandomForestRegressor # 读取数据 data = pd.read_csv('双色球开奖结果.csv') # 提取特征和标签 features = data.iloc[:, 1:7] # 红色球特征 labels = data.iloc[:, 1:7] # 红色球标签 # 创建随机森林回归模型 model = RandomForestRegressor(n_estimators=100, random_state=1) # 拟合模型 model.fit(features, labels) # 预测下一期的红色球号码 next_features = model.predict(features.iloc[-1].values.reshape(1, -1)) next_features = np.round(next_features).astype(int) # 打印预测的红色球号码 print("预测的红色球号码:", next_features)这个预测方式好像有点简单了,弄一个多层感知机进行预测 import pandas as pd import numpy as np from sklearn.neural_network import MLPRegressor # 读取数据 data = pd.read_csv('双色球开奖结果.csv') # 提取特征和标签 features = data.iloc[:, 1:7] # 红色球特征 labels = data.iloc[:, 1:7] # 红色球标签 # 创建多层感知机回归模型 model = MLPRegressor(hidden_layer_sizes=(100,), random_state=1) # 拟合模型 model.fit(features, labels) # 预测下一期的红色球号码 next_features = model.predict(features.iloc[[-1]]) next_features = np.round(next_features).astype(int) # 打印预测的红色球号码 print("预测的红色球号码:", next_features)这两个代码预测的号码不一样,可能是因为使用的模型不一样导致的。随便玩玩吧。 再做一个模拟双色球游戏,如果选择的号码中了,会显示绿色。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |