话不多说直接上!
SCF大家应该都有吧,也就是腾讯云函数,前段时间大家都在用,应该都会使用。
1、新建云函数选择py2.7、空白模板。
2、复制一下代码进去(注意其中pt_key以及pt_pin,需你们自行登录网页版京东获取),保存测试代码,出现正常即可。
3、触发管理-添加触发条件、自定义时间触发 时间填;30 29,59 9-21 * * * * 也就是9点-21每整点或30分自动查询并抢炸弹。
4、如何获取jd的key与pin,网页版登录m.jd.com,手机账号验证码登录,F12查看cookie,点击cookie目录下的 home.h5.jd.com,就能在右侧看到pt_key\pin相应的值,复制到代码内相应的位置即可。
5、后面有一个微信推送,若炸弹成功,将推送至微信,不会用的37行自行删除。
[Asm] 纯文本查看 复制代码
# coding: utf-8import requestsimport timeimport datetimeimport sysimport loggingimport urllibimport jsonreload(sys)sys.setdefaultencoding('utf8')def start(): bomb_headers = { 'Content-Type': 'application/x-www-form-urlencoded', 'cookie': 'pt_key=******; pt_pin=********;', 'User-Agent': 'jdapp;' } bomb_body = 'functionId=cakebaker_pk_getCakeBomb&body={}&client=wh5&clientVersion=1.0.0' bomb_state = requests.post('https://api.m.jd.com/client.action?functionId=cakebaker_pk_getCakeBomb', data=bomb_body, headers=bomb_headers).text logging.warning('炸弹状态:'+bomb_state) if 'timeStart' in bomb_state: bomb_state_json = json.loads(bomb_state) d_time = datetime.datetime.strptime(datetime.datetime.now().strftime("%Y-%m-%d")+bomb_state_json["data"]["result"]["timeStart"], '%Y-%m-%d%H:%M')+datetime.timedelta(hours=-8) logging.warning('距离开始时间还有: '+str((d_time-datetime.datetime.now()).seconds)+'秒') if (d_time-datetime.datetime.now()).seconds <= 60: while datetime.datetime.now() < d_time+datetime.timedelta(seconds=-2): logging.warning(datetime.datetime.now()+datetime.timedelta(hours=8)) time.sleep(1) while datetime.datetime.now() > d_time+datetime.timedelta(seconds=-2) and datetime.datetime.now() < d_time+datetime.timedelta(seconds=2): bomb = requests.post('https://api.m.jd.com/client.action?functionId=cakebaker_pk_getCakeBomb', data=bomb_body, headers=bomb_headers).text logging.warning(datetime.datetime.now()+datetime.timedelta(hours=8)) logging.warning('京东炸弹:'+bomb) if '成功' in bomb: s = json.loads(bomb) msg = urllib.quote(str(s["data"]["result"]["tip"])) groupLevel = urllib.quote(str(s["data"]["result"]["groupLevel"])) opponentLevel = urllib.quote(str(s["data"]["result"]["opponentLevel"])) requests.get('https://sc.ftqq.com/*********.send?text='+groupLevel+'+VS+'+opponentLevel) logging.warning('成功') break else: logging.warning(datetime.datetime.now()+datetime.timedelta(hours=8)) logging.warning('非活动时间!') else: logging.warning(datetime.datetime.now()+datetime.timedelta(hours=8)) logging.warning('非活动时间!')def main_handler(event, context): return start()if __name__ == '__main__': start()
大家动动手点个热心与免费点赞,谢谢!如有问题,有看到都会及时回答!
若有违规之处,管理请删帖,谢谢!
声明:本站所有资源均由网友分享,如有侵权内容,请在文章下方留言,本站会立即处理。