夸克网盘自动签到失效的3步修复方案:从PC端到移动端API的迁移指南
【免费下载链接】quark_auto_save夸克网盘签到、自动转存、命名整理、发推送提醒和刷新媒体库一条龙项目地址: https://gitcode.com/gh_mirrors/qu/quark_auto_save
夸克网盘自动签到功能的失效是近期许多开发者面临的技术挑战。原本稳定的PC端签到接口突然停止服务,导致众多自动化脚本无法正常工作。经过深入分析,我们发现问题的根源在于夸克网盘API接口的升级和安全策略的变更。本文将从问题根源入手,逐步解析解决方案,并提供可操作的实施步骤。
🔍 问题根源:PC端API接口的彻底废弃
夸克网盘近期对API接口进行了重大调整,这是导致自动签到功能失效的直接原因:
- PC端接口全面停用:原有的PC端签到接口(如
drive.quark.cn相关接口)已完全废弃,所有请求都会返回错误或重定向 - 移动端强制认证:新接口要求必须使用移动端特有的认证参数,包括
kps(设备标识)、sign(请求签名)和vcode(验证码) - 安全机制升级:增加了更严格的签名验证环节,防止自动化脚本滥用
从代码层面分析,项目中的quark_auto_save.py文件第474-495行展示了原有的签到实现逻辑,但现在这些接口已经无法正常工作:
def get_growth_sign(self): url = f"{self.BASE_URL_APP}/1/clouddrive/capacity/growth/sign" querystring = { "pr": "ucpro", "fr": "android", "kps": self.mparam.get("kps"), # 移动端特有参数 "sign": self.mparam.get("sign"), "vcode": self.mparam.get("vcode"), } payload = { "sign_cyclic": True, }💡 解决思路:转向移动端API的完整策略
面对接口变更,我们需要从PC端思维转向移动端思维。核心解决方案是通过抓包工具获取移动端APP的认证参数,然后将其集成到自动化脚本中。
方案对比分析
| 方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 移动端参数抓包 | 稳定性高,官方接口 | 需要定期更新参数 | 长期使用的生产环境 |
| 模拟浏览器请求 | 无需抓包 | 稳定性差,易被检测 | 临时测试使用 |
| 第三方代理服务 | 无需维护参数 | 依赖第三方,有安全风险 | 快速验证概念 |
我们推荐采用移动端参数抓包方案,这是目前最稳定可靠的解决方案。项目中的_match_mparam_form_cookie方法(第371-382行)已经为我们提供了参数提取的基础框架:
def _match_mparam_form_cookie(self, cookie): mparam = {} kps_match = re.search(r"(?<!\w)kps=([a-zA-Z0-9%+/=]+)[;&]?", cookie) sign_match = re.search(r"(?<!\w)sign=([a-zA-Z0-9%+/=]+)[;&]?", cookie) vcode_match = re.search(r"(?<!\w)vcode=([a-zA-Z0-9%+/=]+)[;&]?", cookie) if kps_match and sign_match and vcode_match: mparam = { "kps": kps_match.group(1).replace("%25", "%"), "sign": sign_match.group(1).replace("%25", "%"), "vcode": vcode_match.group(1).replace("%25", "%"), } return mparam🛠️ 实施步骤:3步完成签到功能修复
第一步:获取移动端认证参数
使用Fiddler或Charles等抓包工具,配置手机代理,分析夸克APP的HTTPS请求:
- 安装抓包工具并配置SSL证书解密HTTPS流量
- 设置手机代理,连接到抓包工具所在的电脑
- 打开夸克APP,进行签到操作
- 分析请求,查找包含
kps、sign、vcode参数的请求
图:夸克自动转存Web配置界面,可在任务管理中配置多个转存任务
第二步:更新配置文件
将获取到的参数添加到项目的配置文件中。以quark_config.json为例,在cookie字段后添加移动端参数:
{ "cookie": [ "Your pan.quark.cn Cookie1; kps=xxx; sign=yyy; vcode=zzz", "Your pan.quark.cn Cookie2; kps=xxx; sign=yyy; vcode=zzz" ], "push_config": { "QUARK_SIGN_NOTIFY": true } }参数格式说明:
kps:设备标识参数,通常为Base64编码字符串sign:请求签名,用于验证请求合法性vcode:验证码参数,具有时效性
第三步:验证签到功能
运行签到验证脚本,确保参数正确:
# 进入项目目录 cd /data/web/disk1/git_repo/gh_mirrors/qu/quark_auto_save # 运行签到测试 python3 quark_auto_save.py --sign-only验证成功后,系统会显示签到结果:
📅 执行签到: 今日签到+128MB,连签进度(5/7)✅ 💾 88VIP 总空间:26.02 TB,签到累计获得:15.36 GB图:程序运行日志界面,显示账号验证、签到记录和转存任务执行情况
📊 最佳实践:确保长期稳定运行
1. 参数自动化更新
移动端参数具有时效性,建议建立自动化更新机制:
# 示例:定期更新参数的伪代码 def update_mobile_params(): # 1. 通过自动化脚本重新抓包获取新参数 # 2. 更新配置文件 # 3. 重启签到服务 pass2. 错误监控与告警
在do_sign函数(第1111-1149行)中添加完善的错误处理:
def do_sign(account): if not account.mparam: print("⏭️ 移动端参数未设置,跳过签到") return try: growth_info = account.get_growth_info() if growth_info: # 执行签到逻辑 sign, sign_return = account.get_growth_sign() if sign: # 发送成功通知 send_notification(f"签到成功: +{int(sign_return/1024/1024)}MB") else: # 记录失败日志并告警 log_error(f"签到失败: {sign_return}") send_alert("签到失败,请检查参数") except Exception as e: log_error(f"签到异常: {str(e)}")3. 多账号管理策略
对于多账号场景,建议采用以下策略:
- 主账号负责转存:仅第一个账号执行文件转存操作
- 所有账号签到:所有配置的账号都执行签到任务
- 独立参数管理:每个账号使用独立的移动端参数
图:任务执行结果界面,显示文件转存、重命名和Alist刷新等操作的成功状态
4. 性能优化建议
- 请求频率控制:避免过于频繁的请求,建议每日执行1-2次
- 缓存机制:对稳定的参数进行本地缓存,减少重复抓包
- 失败重试:实现指数退避的重试机制,提高成功率
🔧 调试与验证方法
快速验证脚本
创建验证脚本test_sign.py:
#!/usr/bin/env python3 import requests import json def test_sign_params(kps, sign, vcode): url = "https://drive-m.quark.cn/1/clouddrive/capacity/growth/sign" querystring = { "pr": "ucpro", "fr": "android", "kps": kps, "sign": sign, "vcode": vcode } data = {"sign_cyclic": True} response = requests.post(url=url, json=data, params=querystring) result = response.json() if result.get("code") == 0: print(f"✅ 签到成功: {result.get('data', {})}") return True else: print(f"❌ 签到失败: {result.get('message', '未知错误')}") return False # 使用您的参数进行测试 test_sign_params("your_kps_value", "your_sign_value", "your_vcode_value")常见问题排查
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
| 返回"参数错误" | 参数格式不正确 | 检查参数是否完整,注意URL解码 |
| 返回"签名无效" | sign参数过期 | 重新抓包获取新的sign值 |
| 返回"设备异常" | kps参数失效 | 更换设备或重新安装APP获取新参数 |
| 请求超时 | 网络问题 | 检查代理配置,确保能访问移动端API |
📈 自动化维护方案
Docker环境部署
对于生产环境,建议使用Docker部署,便于管理和更新:
# docker-compose.yml version: '3' services: quark-auto-save: image: cp0204/quark-auto-save:latest container_name: quark-auto-save ports: - "5005:5005" environment: - WEBUI_USERNAME=admin - WEBUI_PASSWORD=admin123 - QUARK_SIGN_NOTIFY=true volumes: - ./config:/app/config - ./logs:/app/logs restart: unless-stopped定时任务配置
使用crontab或系统定时任务:
# 每天上午8点执行签到 0 8 * * * cd /data/web/disk1/git_repo/gh_mirrors/qu/quark_auto_save && python3 quark_auto_save.py --sign-only # 每周一、三、五执行转存任务 0 10 * * 1,3,5 cd /data/web/disk1/git_repo/gh_mirrors/qu/quark_auto_save && python3 quark_auto_save.py🎯 总结与建议
夸克网盘自动签到功能的修复需要我们从PC端思维转向移动端思维。通过抓包获取移动端特有的kps、sign、vcode参数,并正确集成到自动化脚本中,可以恢复签到功能。
关键要点总结:
- 参数时效性:移动端参数通常有7-30天的有效期,需要定期更新
- 安全合规:仅用于个人账号管理,避免批量滥用
- 监控告警:建立完善的监控机制,及时发现和解决问题
- 备份策略:定期备份配置文件和抓包数据
对于专注于PC端自动备份的项目,可以考虑将签到功能作为独立模块处理,或者探索更稳定的替代方案。随着夸克网盘安全策略的不断升级,保持技术方案的灵活性和可维护性至关重要。
通过本文提供的3步修复方案,您可以快速恢复夸克网盘的自动签到功能,并建立长期稳定的维护机制。记住,技术方案的可持续性不仅取决于当前的实现,更取决于对未来变化的适应能力。
【免费下载链接】quark_auto_save夸克网盘签到、自动转存、命名整理、发推送提醒和刷新媒体库一条龙项目地址: https://gitcode.com/gh_mirrors/qu/quark_auto_save
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考