【Python爬虫】利用爬虫抓取双色球开奖号码,获取完整数据并通过随机森林和多层感知两种模型进行简单的预测

news2026/4/5 8:48:56

首先我们需要通过爬虫获取往期双色球号码并将其保存在csv文件中,这里我获取了1000期的数据,时间很久,大家可以修改代码少收集一些做尝试!

import requests
import os
from bs4 import BeautifulSoup
import csv
import time

def download(url, page):
    while True:
        try:
            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)
            if not ball:
                raise ValueError("Empty data")
            write_to_excel(page, ball)
            print(f"第{page}期开奖结果录入完成")
            break
        except Exception as e:
            print(f"Attempt failed with error: {e}, retrying...")
            time.sleep(5)  # 等待5秒后重试

def write_to_excel(page, ball):
    with open('双色球开奖结果2.csv', 'a', encoding='utf_8_sig', newline='') as f:
        writer = csv.writer(f)
        writer.writerow([f'第{page}期'] + ball)

def turn_page():
    url = "https://kaijiang.500.com/ssq.shtml"
    html = requests.get(url).text
    soup = BeautifulSoup(html, 'html.parser')
    pageList = soup.select("div.iSelectList a")

    recent_pages = pageList[:1000]  # 获取最近1000期的页码

    for p in recent_pages:
        url = p['href']
        page = p.string
        download(url, page)

def main():
    if os.path.exists('双色球开奖结果2.csv'):
        os.remove('双色球开奖结果2.csv')
    turn_page()

if __name__ == '__main__':
    main()

这里是随机森林预测

import pandas as pd
import numpy as np
from sklearn.ensemble import RandomForestRegressor

# 读取数据
data = pd.read_csv('双色球开奖结果2.csv')  # ,encoding='gbk'

# 提取特征和标签
features = data.iloc[:, 1:7]  # 红色球特征
labels = data.iloc[:, 1:7]  # 红色球标签
blue_balls = data.iloc[:, 7]  # 蓝色球标签

# 创建随机森林回归模型
model = RandomForestRegressor(n_estimators=100, random_state=1)

# 拟合模型
model.fit(features, labels)

# 预测下一期的红色球号码
next_red_balls = model.predict(features.iloc[-1].values.reshape(1, -1))
next_red_balls = np.round(next_red_balls).astype(int)

# 预测下一期的蓝色球号码
blue_ball_model = RandomForestRegressor(n_estimators=100, random_state=1)
blue_ball_model.fit(features, blue_balls)
next_blue_ball = blue_ball_model.predict(features.iloc[-1].values.reshape(1, -1))
next_blue_ball = np.round(next_blue_ball).astype(int)

# 打印预测的红色球号码和蓝色球号码
print("预测的红色球号码:", next_red_balls)
print("预测的蓝色球号码:", next_blue_ball)

多层感知

import pandas as pd
import numpy as np
from sklearn.neural_network import MLPRegressor

# 读取数据
data = pd.read_csv('双色球开奖结果2.csv')  # , encoding='gbk'

# 提取特征和标签
features = data.iloc[:, 1:7]  # 红色球特征
labels = data.iloc[:, 1:8]  # 红色球标签和蓝色球标签

# 创建多层感知机回归模型
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[:6])
print("预测的蓝色球号码:", next_features[6])

 杰哥这里仅做了简单的预测,闲暇时间无聊做的,大家想要更精确的结果需要更精细的调参!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2134044.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

响应式网站真的就只是多了一个媒体查询吗?

响应式网站不仅仅是多了一个媒体查询,而是通过一系列技术和设计理念的结合来实现自适应布局和内容展示。以下将详细分析响应式网站的多个方面: 技术基础 CSS3 Media Query:响应式设计的核心在于使用CSS3的媒体查询(Media Query&a…

应用程序已被 Java 安全阻止:Java 安全中的添加的例外站点如何对所有用户生效

如题:应用程序已被 Java 安全阻止,如下图所示: 在寻找全局配置的时候花了一个上午的时间,到处搜解决方法,都不可行。最后还是参考官方的文档配置好了。如果你碰到了同样的问题,这篇文章一定可以帮到你。 环…

QT支持C/C++工业边缘计算网关带RS485、HDMI视频输出

ARM工业控制器是一种在工业领域广泛应用的设备,以下详细分析ARMxy ARM 工业控制器带 HDMI 支持 QT 应用于工业车间数据采集: 一、ARM 工业控制器概述 ARM 架构的优势: 低功耗:在工业环境中,长时间运行的设备需要较低…

uniapp性能优化专题

运行原理 逻辑层和视图层分离,且非 H5 端通信有折损 逻辑层详解 视图层详解 逻辑层和视图层分离的利与弊 app-vue 和小程序的数据更新,分页面级和组件级 优化建议 避免使用大图 优化数据更新 长列表 展示全部 #性能优化专题 #运行原理 #逻辑…

LDR6020,单C口OTG,充放一体新潮流!

PD(Power Delivery)芯片实现单Type-C接口输入和输出OTG(On-The-Go)功能,主要是通过支持USB Power Delivery规范和OTG功能的特定硬件和软件设计来实现的。以下是对这一过程的具体解释: 一、PD芯片基础功能 …

海外最新外太空投资理财系统源码

海外最新外太空投资理财系统源码 源码下载:https://download.csdn.net/download/m0_66047725/89744826 更多资源下载:关注我。

ARTS Week 38

Algorithm 本周的算法题为 2432. 处理用时最长的那个任务的员工 共有 n 位员工,每位员工都有一个从 0 到 n - 1 的唯一 id 。 给你一个二维整数数组 logs ,其中 logs[i] [idi, leaveTimei] : idi 是处理第 i 个任务的员工的 id ,…

openmpi 的应用编译使用方式的探讨

0&#xff0c;源码 hello_openmpi.c #include <stdio.h> #include <mpi.h>int main(int argc, char **argv) {printf("1 Hello, world! \n");MPI_Init(&argc, &argv);int rank;MPI_Comm_rank(MPI_COMM_WORLD, &rank);printf("2 Hello…

Java语法1

注释 单行注释// 多行/* */ 字面量 同C \n \t不需要加单引号 数据的存储 十进制转二进制 除2取余法 数据在计算机中的最小存储单位字节1B8b KB MB GB TB 相邻的转换 2的10次方等于1024 字符存进去则存ASSIC编码对应的数,比如49对应’1’,65对应’A’,97对应’a’ 图片,声音…

基于YOLO V8的学生上课行为检测系统【python源码+Pyqt5界面+数据集+训练代码】有报告

目的是利用YOLOV8这一先进的深度学习技术&#xff0c;开发一个自动化的学生上课行为检测系统。通过对上课行为数据集进行深入分析和标注&#xff0c;我们训练了YOLOV8模型&#xff0c;使其能够精确识别学生在课堂上的各种行为状态。这一系统能够实时监控并分析学生的行为&#…

从词到句,可以让你快速无忧看日文的翻译软件

不知道你喜欢看日漫吗&#xff0c;可能是身边的氛围吧&#xff0c;打小身边就很多这类的书籍。但是因为语言的问题基本都是把它当小人书了。但是现在看书就方便多了&#xff0c;有不少支持日语翻译的工具可以帮我们解决这个语言问题。 1.福昕在线翻译 链接直达>>https:…

『功能项目』事件中心【43】

我们打开上一篇42怪物的有限状态机的项目&#xff0c; 本章要做的事情是利用事件中心&#xff08;和观察者模式相仿&#xff09;将Update()函数中写的GameObject.Find()这些语句替换掉&#xff0c;因为在Update()函数中每帧的执行频率非常快&#xff0c;如果在Update()函数中写…

Centos入门必备基础知识

CentOS&#xff08;Community ENTerprise Operating System&#xff09;是一个开源的Linux发行版&#xff0c;基于Red Hat Enterprise Linux&#xff08;RHEL&#xff09;源代码构建。以下是CentOS入门必备的一些基础知识&#xff1a; 前言 本文由浪浪云赞助发布&#xff0c;…

设计模式 桥接模式(Bridge Pattern)

文章目录 桥接模式简绍桥接模式的核心概念包括以下几个部分&#xff1a;桥接模式的工作流程桥接模式优缺点桥接模式优点桥接模式缺点 UML图代码示例适用场景 桥接模式简绍 桥接模式&#xff08;Bridge Pattern&#xff09;是对象结构型设计模式中的一种&#xff0c;它将抽象与…

艾丽卡的区块链英语小课堂

系列文章目录 IT每日英语&#xff08;三&#xff09; 文章目录 系列文章目录前言1.principle2.efficient3.implement4.accumulated5,occupation6.phases7.validator8.nominated9.commissions10.significantly 前言 欢迎来到艾丽卡的区块链英语小课堂&#xff0c;在这里&…

650人微软员工被裁,动视暴雪制作团队调整,游戏行业风云再起

易采游戏网9月14日消息&#xff1a;微软宣布将裁员650人&#xff0c;这一消息在游戏行业引起了广泛的关注和讨论。此次裁员主要集中在微软的子公司动视暴雪&#xff0c;涉及到《魔兽大作战》和《使命召唤&#xff1a;战争地带》这两个备受瞩目的游戏团队。尽管裁员让很多玩家感…

基于python+django+vue的二手电子设备交易平台

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的二…

wget不管用的情况下,如何在centos中手动安装yum

wget不管用的情况下&#xff0c;如何在centos中手动安装yum 1、卸载python和yum2、手动下载需要的包3、更换yum源4、清理yum缓存&#xff0c;并生成新的缓存5、更新yum6、最后试试安装wget 问题背景&#xff0c;我在使用yum遇到了问题&#xff0c;想着重新安装一下&#xff0c;…

生成式人工智能(AIGC)对职业院校“云课堂”的赋能路径与价值边界

一、前言 随着教育技术的快速发展&#xff0c;生成式人工智能&#xff08;Artificial Intelligence General Content, AIGC&#xff09;正在成为推动教育改革的重要力量。生成式人工智能&#xff08;AIGC&#xff09;技术的应用&#xff0c;为职业院校的“云课堂”提供了新的教…

Oracle数据库软件的下载与安装步骤(适用于初学者)

目录 背景: 安装过程&#xff1a; 验证是否安装成功&#xff1a; 背景: Oracle&#xff0c;全程Oracle Corporation(甲骨文公司)&#xff0c;是全球领先的企业级软件公司&#xff0c;其最著名的产品是Oracle数据库&#xff0c;Oracle数据库是一款关系型数据库系统(RDBMS)&am…