教程说明
一段Python和彩云自动签到云函数脚本,可领爱奇艺,腾讯,芒果等会员。
腾讯云函数里面的执行时间调大点,要不执行不完,懂的朋友看。
Python签到脚本
import json import requests OpenLuckDraw = False # 是否开启自动幸运抽奖(首次免费, 第二次5积分/次) 不建议开启 否则会导致多次执行时消耗积分 Skey = "" # 酷推 skey Cookie = ''# 抓包Cookie 存在引号时 请使用 转义 Referer = "" # 抓包referer UA = "Mozilla/5.0 (Linux; Android 10; M2007J3SC Build/QKQ1.191222.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/83.0.4103.106 Mobile Safari/537.36 MCloudApp/7.6.0" def push(title, content): url = "https://push.xuthus.cc/send/" + Skey data = title + "n" + content # 发送请求 res = requests.post(url=url, data=data.encode('utf-8')).text def getEncryptTime(): target = "http://caiyun.feixin.10086.cn:7070/portal/ajax/tools/opRequest.action" headers = { "Host": "caiyun.feixin.10086.cn:7070", "Accept": "*/*", "X-Requested-With": "XMLHttpRequest", "User-Agent": UA, "Content-Type": "application/x-www-form-urlencoded", "Origin": "http://caiyun.feixin.10086.cn:7070", "Referer": Referer, "Accept-Encoding": "gzip, deflate", "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", "Cookie": Cookie, } payload = ({ "op": "currentTimeMillis" }) resp = json.loads(requests.post(target, headers=headers, data=payload).text) if resp['code'] != 10000: print('获取时间戳失败: ', resp['msg']) return 0 return resp['result'] def getTicket(): target = "https://hecaiyun.vercel.app/api/10086_calc_sign" payload = { "sourceId": 1003, "type": 1, "encryptTime": getEncryptTime() } resp = json.loads(requests.post(target, data=payload).text) if resp['code'] != 200: print('加密失败: ', resp['msg']) return resp['data'] def luckDraw(): target = "http://caiyun.feixin.10086.cn:7070/portal/ajax/common/caiYunSignIn.action" headers = { "Host": "caiyun.feixin.10086.cn:7070", "Accept": "*/*", "X-Requested-With": "XMLHttpRequest", "User-Agent": UA, "Content-Type": "application/x-www-form-urlencoded", "Origin": "http://caiyun.feixin.10086.cn:7070", "Referer": Referer, "Accept-Encoding": "gzip, deflate", "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", "Cookie": Cookie, } payload = ({ "op": "luckDraw", "data": getTicket() }) resp = json.loads(requests.post(target, headers=headers, data=payload).text) if resp['code'] != 10000: print('自动抽奖失败: ', resp['msg']) return '自动抽奖失败: ' + resp['msg'] else: if resp['result']['type'] == '40160': return '自动抽奖成功: 小狗电器小型手持床铺除螨仪' elif resp['result']['type'] == '40175': return '自动抽奖成功: 飞科男士剃须刀' elif resp['result']['type'] == '40120': return '自动抽奖成功: 京东京造电动牙刷' elif resp['result']['type'] == '40140': return '自动抽奖成功: 10-100M随机长期存储空间' elif resp['result']['type'] == '40165': return '自动抽奖成功: 夏新蓝牙耳机' elif resp['result']['type'] == '40170': return '自动抽奖成功: 欧莱雅葡萄籽护肤套餐' else: return '自动抽奖成功: 谢谢参与' def run(): target = "http://caiyun.feixin.10086.cn:7070/portal/ajax/common/caiYunSignIn.action" headers = { "Host": "caiyun.feixin.10086.cn:7070", "Accept": "*/*", "X-Requested-With": "XMLHttpRequest", "User-Agent": UA, "Content-Type": "application/x-www-form-urlencoded", "Origin": "http://caiyun.feixin.10086.cn:7070", "Referer": Referer, "Accept-Encoding": "gzip, deflate", "Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8", "Cookie": Cookie, } ticket = getTicket() payload = ({ "op": "receive", "data": ticket, }) resp = json.loads(requests.post(target, headers=headers, data=payload).text) if resp['code'] != 10000: push('和彩云签到', '失败:' + resp['msg']) else: content = '签到成功n月签到天数:' + str(resp['result']['monthDays']) + 'n总积分:' + str( resp['result']['totalPoints']) if OpenLuckDraw: content += 'nn' + luckDraw() push('和彩云签到', content) def main_handler(event, context): run() # 本地测试 if __name__ == '__main__': run()