|
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行自行删除。
- # coding: utf-8import requests
- import time
- import datetime
- import sys
- import logging
- import urllib
- import json
- reload(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()
复制代码
|
|