mirror of
https://github.com/yule153604/zglt_script.git
synced 2026-11-05 23:16:43 +08:00
bad7e9551fec134a1fd568def59e3d6f4919744a
中国联通自动化脚本
这是一个专为中国联通APP设计的高效自动化脚本,采用Python编写,旨在帮助用户自动完成日常签到、领现金、权益超市及各类专区活动。脚本基于异步IO架构,支持多账号并发运行,具有高度的稳定性和可扩展性。
🛠️ 代码结构详解
中国联通.py
├── 📂 青龙API操作函数
│ ├── ql_get_env .................. 获取青龙环境变量
│ ├── ql_update_env ............... 更新青龙环境变量
│ └── ql_update_cookie_to_token ... 账密登录后自动更新为Token格式
│
├── 📂 MarketRaffleState (全局奖池状态类)
│ ├── __init__ .................... 初始化奖池状态/锁
│ └── check_prizes ................ 查询奖池(全局单次,多账号共享)
│
├── 📂 Logger (日志管理类)
│ ├── __init__ .................... 初始化日志前缀
│ └── log ......................... 输出带时间戳的日志
│
├── 📂 HttpClient (网络请求类)
│ ├── __init__ .................... 初始化 Session/Headers
│ └── request ..................... 发送 HTTP 请求(含重试/Cookie管理)
│
├── 📂 RSAEncrypt (RSA加密类)
│ └── encrypt ..................... RSA加密(用于账密登录)
│
├── 📂 CustomUserService (核心业务类)
│ │
│ ├── 🔧 基础功能
│ ├── __init__ .................... 初始化账号信息(自动识别登录方式)
│ ├── _detect_login_mode .......... 检测登录模式(账密/Token)
│ ├── _generate_appid ............. 生成账密登录用appid
│ ├── online ...................... 登录调度器(自动选择登录方式)
│ ├── _login_with_password ........ 账号密码登录
│ ├── _login_with_token ........... Token登录
│ ├── open_plat_line_new .......... 获取业务 Ticket
│ ├── get_bizchannelinfo .......... 生成业务渠道 Header
│ └── get_epay_authinfo ........... 生成支付认证 Header
│ │
│ ├── 📝 日常签到 (Sign)
│ ├── sign_task ................... 签到任务入口
│ ├── sign_get_continuous ......... 获取签到状态
│ └── sign_day_sign ............... 执行签到
│ │
│ ├── 💰 天天领现金 (TTLXJ)
│ ├── ttlxj_task .................. 领现金任务入口
│ ├── ttlxj_authorize ............. 业务授权
│ ├── ttlxj_login ................. 业务登录
│ ├── ttlxj_unify_draw_new ........ 执行打卡/抽奖
│ └── ttlxj_query_available ....... 查询余额
│ │
│ ├── 🎁 联通祝福 (Wocare)
│ ├── ltzf_task ................... 祝福任务入口
│ ├── wocare_get_token ............ 获取 Token
│ ├── wocare_api .................. 通用 API 请求(含解密)
│ ├── wocare_get_draw_task ........ 获取任务列表
│ ├── wocare_complete_task ........ 完成任务
│ └── wocare_luck_draw ............ 执行抽奖
│ │
│ ├── 🛒 权益超市 (Market)
│ ├── market_task ................. 超市任务入口
│ ├── market_login ................ 超市登录
│ ├── market_share_task ........... 分享小红书任务(自动完成获取抽奖机会)
│ ├── market_watering_task ........ 浇花任务(支持多次浇花直到完成)
│ ├── market_watering ............. 执行浇花
│ ├── market_raffle_task .......... 抽奖任务(可选展示奖池信息)
│ ├── market_validate_captcha ..... 人机验证处理
│ └── market_raffle ............... 执行抽奖
│ │
│ ├── 🍇 新疆专区 (Xinjiang)
│ ├── xj_task ..................... 新疆任务入口(含归属地校验)
│ ├── xj_do_draw .................. 执行活动抽奖
│ ├── xj_usersday_task ............ 会员日任务入口
│ └── xj_usersday_draw ............ 会员日抽奖
│ │
│ ├── 🏙️ 商都福利 (ShangDu - 河南)
│ ├── shangdu_task ................ 商都任务入口(含归属地校验)
│ ├── shangdu_get_ticket .......... 获取 Ticket
│ ├── shangdu_login ............... 激活 Ticket
│ └── shangdu_signin .............. 执行签到
│ │
│ └── 📱 云手机活动 (Cloud Phone)
│ ├── wostore_cloud_task ........ 云手机任务入口
│ ├── wostore_cloud_login ....... 两步登录获取Token
│ ├── wostore_cloud_get_coupon .. 领取优惠券
│ ├── wostore_cloud_task_list ... 查询任务列表
│ ├── wostore_cloud_get_chance .. 领取抽奖次数
│ └── wostore_cloud_draw ........ 执行抽奖
│
└── 🚀 main (主程序入口) ............ 并发调度所有账号任务
✨ 功能特性
双模式登录
- Token登录: 推荐方式,使用抓包获取的token_online登录,稳定可靠
- 账密登录: 使用手机号+登录专用密码直接登录,无需抓包,但易触发风控
- 自动识别: 脚本自动检测输入格式,选择对应登录方式
- 自动转换: 账密登录成功后自动将环境变量更新为Token格式(青龙面板)
权益超市增强功能
- 分享任务自动完成: 自动完成分享小红书任务,获取额外抽奖机会
- 每日自动抽奖: 无条件执行抽奖,不受奖池状态影响
- 奖池信息展示: 可选功能,抽奖完成后展示今日奖池信息(默认关闭)
- 有效奖品识别: 自动标记有效奖品(包含月卡/周卡/季卡,排除5G宽视界/沃视频)
- 人机验证处理: 抽奖触发人机验证时自动处理并继续抽奖
- 浇花任务修复: 支持多次浇花直到完成目标次数(如60次)
- 全局奖池查询: 多账号只查询一次奖池,共享结果,节省资源
云手机活动
- 自动领券: 每日自动领取优惠券(如美团生活服务券)
- 任务状态同步: 自动触发任务状态同步,确保可领取抽奖次数
- 每日抽奖: 完成任务后自动执行抽奖
🚀 快速开始
1. 安装依赖
pip install httpx
# 如需使用账密登录,还需安装:
pip install pycryptodome
2. 配置账号
脚本通过环境变量 chinaUnicomCookie 获取用户登录信息。支持多账号,多个账号之间使用 @ 符号分隔。
方式一:Token登录(推荐)
格式:token_online字符串 或 token_online#appid
- 使用抓包工具(如Stream、Fiddler)抓取中国联通APP的请求
- 找到
https://m.client.10010.com/mobileService/onLine.htm请求 - 提取请求体中的
token_online值(可选:同时提取appId)
# 仅 token_online
export chinaUnicomCookie="your_token_online_string"
# token_online + appid(更稳定)
export chinaUnicomCookie="your_token_online#your_appid"
方式二:账密登录
⚠️ 注意: 账密登录容易触发安全风控,建议优先使用Token登录
💡 自动转换: 在青龙面板中使用账密登录成功后,脚本会自动将环境变量更新为
token_online#appid格式,后续运行将使用Token登录
格式:手机号#登录专用密码
# 单账号
export chinaUnicomCookie="18812345678#yourpassword"
# 多账号
export chinaUnicomCookie="18812345678#password1@18887654321#password2"
登录专用密码需要在联通APP中设置,不是服务密码。
方式三:混合使用
可以同时使用两种登录方式:
export chinaUnicomCookie="token_string@18812345678#password"
3. 可选配置
编辑 中国联通.py 文件顶部的常量:
SHOW_PRIZE_POOL = False # 是否显示权益超市奖品池信息,默认关闭
4. 执行模式切换
脚本默认采用并行模式运行多个账号,如需改为顺序执行(一个账号完成后再执行下一个),修改 main() 函数:
并行模式(默认):
tasks = []
for i, cookie in enumerate(cookies.split('@')):
if not cookie.strip():
continue
user = CustomUserService(cookie, index=i+1)
tasks.append(user.user_task())
if tasks:
await asyncio.gather(*tasks)
顺序模式:
for i, cookie in enumerate(cookies.split('@')):
if not cookie.strip():
continue
user = CustomUserService(cookie, index=i+1)
await user.user_task()
5. 运行脚本
python 中国联通.py
6. 查看运行结果
脚本运行后,将在控制台输出详细的执行日志。
- 登录状态: 显示登录成功/失败及脱敏后的手机号(如
138****5678) - 登录方式: 显示使用的是账密登录还是Token登录
- 任务进度: 实时显示各个任务的执行情况(如"签到成功"、"获得0.87元立减金")
- 抽奖结果: 显示具体的奖品名称(如"5元话费券"、"未中奖")
奖池查询输出示例(开启 SHOW_PRIZE_POOL 时)
============================================================
权益超市奖品池查询
============================================================
今日奖池共 16 个奖品:
✅ [01] 爱奇艺VIP月卡
今日投放: 100 | 总库存: 5000 | 概率: 5.00%
❌ [02] 5G宽视界黄金会员月卡
今日投放: 50 | 总库存: 3000 | 概率: 3.00%
❌ [03] 茶百道6元免配券
今日投放: 5000 | 总库存: 0 | 概率: 15.00%
...
============================================================
结论: 当前已放水!有效奖品 3/16 个,可以抽奖
============================================================
❓ 常见问题与故障排除
1. 账密登录相关
| 错误信息 | 原因 | 解决方案 |
|---|---|---|
| 密码错误 | 登录专用密码不正确 | 在联通APP中重置登录专用密码 |
| 未设置登录专用密码 | 账号未开启登录专用密码 | 前往联通APP设置登录专用密码 |
| 触发安全风控 | 登录频率过高或异常 | 手动打开联通APP登录一次解除 |
| 账密登录需要pycryptodome | 缺少加密库 | pip install pycryptodome |
2. Token登录失败处理
如果遇到Token登录失败的情况,请尝试以下步骤:
- 使用抓包工具获取本机实际的
device_id和device_code - 打开
中国联通.py文件,找到_login_with_token函数 - 将代码中的
device_id和device_code替换为抓包获取的实际值
3. 权益超市相关
- 浇花状态异常: 已修复只浇花一次的问题,现在会持续浇花直到完成目标次数
- 奖池信息: 设置
SHOW_PRIZE_POOL = True可在抽奖后展示今日奖池 - 人机验证: 触发人机验证时会自动处理,无需手动干预
注意事项
- HTTP/2: 为保证稳定性,脚本默认关闭了HTTP/2支持
- 异常处理: 脚本内置了完善的异常捕获机制,单个任务的失败不会影响其他任务或账号的执行
- 隐私安全: 所有敏感信息(如手机号)在日志输出时均会自动脱敏,保障用户隐私
- 奖池共享: 权益超市奖池查询只执行一次,所有账号共享结果,避免重复请求
⚠️ 免责声明
- 仅供学习交流:本项目仅供编程学习和技术交流使用,请勿用于任何商业用途。
- 合法使用:请勿将本脚本用于任何非法目的,包括但不限于恶意攻击、刷单等行为。
- 风险自担:使用本脚本产生的任何后果(包括但不限于账号封禁、财产损失等)由使用者自行承担,开发者不承担任何责任。
- 隐私保护:本项目不会收集用户的任何敏感信息,所有数据均保存在用户本地。
- 侵权联系:如果本项目侵犯了您的权益,请及时联系开发者进行处理。
Languages
Python
100%