1.购买服务器地址
服务器购买地址
https://t.aliyun.com/U/BTQ1HK
若失效,可用地址
https://www.aliyun.com/daily-act/ecs/ecs_trial_benefits?source=5176.29345612&userCode=49hts92d
2.部署教程
3. 代码如下
"""
霸王茶姬签到py
new Env("霸王茶姬签到")
cron: 20 20,7 * * *
打开微信小程序抓webapi.qmai.cn里面的qm-user-token(一般在请求头里)填到变量bwcjck里面即可
支持多用户运行
多用户用&或者@隔开
例如账号1:hv1 账号2:hv2
则变量为hv1&1hv2
export bwcjck=""
"""
import requests
import re
import os
import time
#分割变量
if 'bwcjck' in os.environ:
bwcjck = re.split("@|&",os.environ.get("bwcjck"))
print(f'查找到{len(bwcjck)}个账号')
else:
bwcjck = ''
print('无bwcjck变量')
def yx(ck):
headers = {'qm-user-token': ck,'User-Agent': 'Mozilla/5.0 (Linux; Android 14; 2201122C Build/UKQ1.230917.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 XWEB/1160065 MMWEBSDK/20231202 MMWEBID/2247 MicroMessenger/8.0.47.2560(0x28002F30) WeChat/arm64 Weixin NetType/5G Language/zh_CN ABI/arm64 MiniProgramEnv/android','qm-from': 'wechat'}
dl = requests.get(url='https://webapi.qmai.cn/web/catering/crm/personal-info',headers=headers).json()
if dl['message'] == 'ok':
print(f"账号:{dl['data']['mobilePhone']}登录成功")
data = {"activityId":"947079313798000641","appid":"10086"}
lq = requests.post(url='https://webapi.qmai.cn/web/cmk-center/sign/takePartInSign',data=data,headers=headers).json()
if lq['message'] == 'ok':
print(f"签到情况:获得{lq['data']['rewardDetailList'][0]['rewardName']}:{lq['data']['rewardDetailList'][0]['sendNum']}")
else:
print(f"签到情况:{lq['message']}")
def point(ck):
headers = {'qm-user-token': ck,'User-Agent': 'Mozilla/5.0 (Linux; Android 14; 2201122C Build/UKQ1.230917.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/116.0.0.0 Mobile Safari/537.36 XWEB/1160065 MMWEBSDK/20231202 MMWEBID/2247 MicroMessenger/8.0.47.2560(0x28002F30) WeChat/arm64 Weixin NetType/5G Language/zh_CN ABI/arm64 MiniProgramEnv/android','qm-from': 'wechat'}
dl = requests.post(url='https://webapi.qmai.cn/web/catering/crm/points-info',headers=headers).json()
# print(f"账号:{dl}")
if dl['message'] == 'ok':
totalPoints=dl['data'] ['totalPoints']
soonExpiredPoints=dl['data'] ['soonExpiredPoints']
expiredTime=dl['data'] ['expiredTime']
print(f"积分:{totalPoints} 其中有 {soonExpiredPoints }积分将于{ expiredTime }过期")
def main():
z = 1
for ck in bwcjck:
try:
print(f'登录第{z}个账号')
print('----------------------')
yx(ck)
point(ck)
print('----------------------')
z = z + 1
except Exception as e:
print(e)
print('未知错误1')
if __name__ == '__main__':
try:
main()
except Exception as e:
print('未知错误')
解析:
这段脚本是一个用于微信小程序“霸王茶姬”自动签到和积分查询的 Python 脚本。以下是脚本的详细解析:
脚本的主要作用:
- 自动签到:通过抓取并使用小程序中的
qm-user-token
,脚本会自动向霸王茶姬的签到接口发送请求,完成签到操作。 - 积分查询:通过抓取
qm-user-token
,脚本还能查询该账号的总积分信息,并显示即将过期的积分。 - 多账号支持:脚本支持多个用户的签到和积分查询,只需要通过
&
或@
分隔多个qm-user-token
。
主要方法:
-
yx(ck)
:- 功能:该方法负责处理签到操作。
- 具体实现:
- 使用
requests.get()
发送请求,访问https://webapi.qmai.cn/web/catering/crm/personal-info
接口,验证qm-user-token
的有效性,并获取用户的手机号。 - 成功登录后,发送
POST
请求到https://webapi.qmai.cn/web/cmk-center/sign/takePartInSign
,尝试完成签到操作,并返回签到的奖励信息。 - 如果签到成功,会输出获得的奖励信息;如果失败,则输出错误信息。
- 使用
-
point(ck)
:- 功能:该方法用于查询当前账号的积分情况。
- 具体实现:
- 使用
requests.post()
发送请求到https://webapi.qmai.cn/web/catering/crm/points-info
接口,获取用户的积分信息。 - 成功获取积分信息后,输出总积分、即将过期的积分以及过期日期。
- 使用
-
main()
:- 功能:脚本的主函数,用于处理多账号签到和积分查询。
- 具体实现:
- 通过循环遍历
bwcjck
中的每个qm-user-token
,依次调用yx()
和point()
方法进行签到和积分查询。 - 如果在处理某个账号时出现异常,捕获并输出异常信息。
- 通过循环遍历
-
脚本初始化部分:
- 环境变量解析:脚本从环境变量
bwcjck
中获取qm-user-token
,并使用re.split()
方法将多个账号的token
通过@
或&
分隔为列表bwcjck
。 - 脚本异常处理:在
main()
函数执行过程中,若出现异常,会被捕获并打印“未知错误”的提示。
- 环境变量解析:脚本从环境变量
应用场景:
- 该脚本主要用于自动化处理微信小程序“霸王茶姬”的签到任务和积分查询,帮助用户减少手动操作。通过定时任务(如
cron
),用户可以自动化每天的签到和积分检查任务。
关键点:
- 多账号支持:脚本能够同时处理多个账号的签到和积分查询。
- 自动化签到:通过
qm-user-token
自动完成签到,减少手动签到的麻烦。 - 积分查询:不仅能签到,还能查询用户的积分情况,尤其是即将过期的积分。
4. 如何联系我
关注公众号即可私信
今晚务必早点睡