# 大乐透 **Repository Path**: 00000002/super-lotto ## Basic Information - **Project Name**: 大乐透 - **Description**: No description available - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-04-30 - **Last Updated**: 2026-05-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 大乐透数据下载工具 从中国体育彩票官方API下载大乐透历史开奖数据。 ## 环境要求 - Python 3.7+ - requests 库 ## 目录结构 ``` data/ ├── dlt_raw/ # 原始JSON文件 │ └── dlt_XXXXX.json # 每期开奖数据 └── dlt.db # SQLite数据库 scripts/ ├── lottery_api.py # API客户端 └── download_dlt.py # 下载脚本 ``` ## 使用方法 ### 1. 下载全部历史数据 ```bash python scripts/download_dlt.py ``` ### 2. 增量更新 ```python from scripts.download_dlt import incremental_update count = incremental_update() print(f"Updated {count} new records") ``` ### 3. 自定义下载 ```python from scripts.lottery_api import LotteryAPI from scripts.download_dlt import save_json, save_to_db, init_db api = LotteryAPI() conn = init_db() # 下载指定期号范围 start_period = "24001" end_period = "24050" draws = api.fetch_by_period(start_period, end_period) for draw in draws: save_json(draw) save_to_db(conn, draw) conn.close() ``` ### 4. 数据库查询 ```python import sqlite3 conn = sqlite3.connect("data/dlt.db") c = conn.cursor() # 查询最新10期 c.execute("SELECT period, draw_date, front_zone, back_zone FROM draws ORDER BY period DESC LIMIT 10") for row in c.fetchall(): print(row) # 查询某个号码出现次数 c.execute("SELECT COUNT(*) FROM draws WHERE front_zone LIKE '%05%'") print(f"Number 05 appeared {c.fetchone()[0]} times") conn.close() ``` ## 数据字段说明 ### JSON文件结构 ```json { "period": "26044", "draw_date": "2026-04-25", "numbers": "03 08 22 26 29 07 10", "game_name": "超级大乐透", "pool_balance": "796,949,218.24", "prize_info": [...] } ``` ### 数据库表结构 ```sql draws ( id INTEGER PRIMARY KEY, period TEXT UNIQUE, -- 期号 draw_date TEXT, -- 开奖日期 front_zone TEXT, -- 前区号码JSON [5,12,18,25,33] back_zone TEXT, -- 后区号码JSON [3,11] front_1~5 INTEGER, -- 前区单独字段 back_1~2 INTEGER, -- 后区单独字段 pool_balance REAL, -- 奖池金额 created_at TEXT -- 创建时间 ) ``` ## API信息 - 官方API: `https://webapi.sporttery.cn/gateway/lottery/getHistoryPageListV1.qry` - 总记录数: ~2862期 - 开奖频率: 每周一、三、六 ## 注意事项 1. 下载时会自动添加1秒延迟,避免请求过快 2. 请求失败会自动重试3次 3. 增量更新会自动跳过已存在的数据