快速收集开奖信息的软件

双色球、大乐透、3D、排列三、排列五 等历史数据分布在不同网页里,有的历史数据不全,有的最新数据不及时更新。有的数据格式不适合进一步分析使用。 编写一个软件,一次性收集这些数据。为下一步分析做准备。

首先 创建d:\yypy 目录。 数据都会存储在这目录下。

1.性能

是一个用于抓取彩票数据并保存到 Excel 的 Python 脚本。支持以下彩票类型:

  • 大乐透 (dlt)
  • 双色球 (ssq)
  • 排列三 (pls)
  • 排列五 (plw)
  • 3D (3d)

主要功能包括:

  • 从指定网页抓取彩票历史数据。
  • 获取最新的 3D 数据并插入到历史数据的最前面。
  • 将数据保存为 Excel 文件,并记录日志信息。

数据来源公开网站。 不频繁抓取数据。 

2. 代码优化点

(1)数据保存功能
  • 使用 pandas 将数据保存为 Excel 文件,文件名根据彩票类型动态生成。
  • 日志中会输出最新 5 条记录和总记录数量,便于验证数据完整性。
(2) 日志功能增强
  • 使用 logging 模块记录程序运行状态,包括成功打开网页、保存数据、以及错误信息。
  • 日志信息包括时间戳、日志级别和具体消息,便于调试和跟踪。
(3) 异常处理
  • 对网络请求和解析过程中的异常进行捕获和处理,确保程序健壮性。
  • 如果网页打开失败或数据解析失败,会记录错误日志并继续执行后续任务。

3. 使用说明

(1) 运行环境
  • Python 3.x
  • 依赖库:requestsbeautifulsoup4pandaslogging
(2) 运行方式
  1. 将代码保存为 yy_seekdata_main_2025_v2.py 。
  2. 在终端或命令行中运行:
    python yy_seekdata_main_2025_v2.py 
  3. 程序会自动抓取数据并保存到 d:/yypy/ 目录下,文件名为 yy_彩票类型.xlsx
(3) 日志文件
  • 日志会输出到终端,同时可以通过修改 logging.basicConfig 配置将日志保存到文件。
(4) 自定义配置
  • 如果需要修改保存路径或文件名,可以修改 filename 变量的值。
  • 如果需要抓取其他彩票类型,可以在 lotteries 列表中添加或修改配置。

4. 代码结构

# 导入库 
import pandas as pd 
import requests 
from bs4 import BeautifulSoup 
import logging 
 
# 配置日志 
logging.basicConfig(level=logging.INFO,  format='%(asctime)s - %(levelname)s - %(message)s')
 
# 获取网页内容 
def get_html(url, lottery_type):
    ...
 
# 解析大乐透和双色球数据 
def parse_lottery(html, lottery_type):
    ...
 
# 解析排列三和3D数据 
def parse_3d_pls_plw(html, lottery_type):
    ...
 
# 获取最新的3D数据 
def get_latest_3d():
    ...
 
# 保存数据到 Excel 
def save_to_excel(data, filename, lottery_type):
    ...
 
# 主函数 
def main():
    ...
 
if __name__ == '__main__':
    main()

 其中 get_lastest_3d 部分 是解决历史数据完整的数据源 更新延时一天的问题。 再别的网站抓取最新数据。


5、注意事项
网络连接:
确保运行环境可以访问 https://datachart.500.com 。
如果网络不稳定,可能导致抓取失败。
网页结构变化:
如果目标网页的 HTML 结构发生变化,可能需要调整解析逻辑。
文件路径:
确保 d:/yypy/ 目录存在,或者修改为其他有效路径。
日志级别:
如果需要更详细的日志信息,可以将 logging.basicConfig 的 level 改为 logging.DEBUG。

6、示例
(1) 日志输出
2025-03-12 15:32:00,123 - INFO - dlt 网页打开成功 
2025-03-12 15:32:01,456 - INFO - 数据已保存到 d:/yypy/yy_dlt.xlsx  
2025-03-12 15:32:01,789 - INFO - dlt 最新5条记录:
   period  r1  r2  r3  r4  r5  b1  b2        date 
0  26300  01  02  03  04  05  06  07  2025-03-11 
1  26299  02  03  04  05  06  07  08  2025-03-10 
...
2025-03-12 15:32:01,890 - INFO - dlt 总记录数量:100 
(2) Excel 文件内容
period    r1    r2    r3    r4    r5    b1    b2    date
26300    01    02    03    04    05    06    07    2025-03-11
26299    02    03    04    05    06    07    08    2025-03-10
...    ...    ...    ...    ...    ...    ...    ...    ...
7. 总结
yy_seekdata_main_2025_v2 版本通过优化代码逻辑、增强日志功能和异常处理,提升了程序的稳定性和可维护性。用户可以轻松抓取彩票数据并保存为 Excel 文件,便于后续分析和使用。如果有其他需求或改进建议,欢迎随时提出!

完整程序
import pandas as pd 
import requests 
from bs4 import BeautifulSoup 
import logging 
 
# 配置日志 
logging.basicConfig(level=logging.INFO,  format='%(asctime)s - %(levelname)s - %(message)s')
 
# 获取网页内容 
def get_html(url, lottery_type):
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36'
    }
    try:
        response = requests.get(url,  headers=headers)
        response.raise_for_status() 
        logging.info(f"{lottery_type}  网页打开成功")
        return response.text  
    except requests.exceptions.RequestException  as e:
        logging.error(f"{lottery_type}  网页打开失败: {e}")
        return None 
 
# 解析大乐透和双色球数据 
def parse_lottery(html, lottery_type):
    soup = BeautifulSoup(html, 'lxml')
    data = []
    for row in soup.select('tr')[3:]: 
        try:
        
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

firefox_yau

核心程序的复用性,彩票分析

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值