1 Star 4 Fork 0

逐鹿少年/JD_tools

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
jd-tool.py 29.60 KB
一键复制 编辑 原始数据 按行查看 历史
逐鹿少年 提交于 2020-11-12 19:19 . update jd-tool.py.
#@Author : 逐鹿少年
#-*- codeing = utf-8 -*-
#@Time : 2020/10/01
#@File : JD.py
#@Sofaware : PyCharm
#https://bean.m.jd.com/
import pytz
import json
import time
import requests
import datetime
from io import StringIO
#获取Cookie,请先新建一个cookie.txt文件,并在文件内填入cookie
with open('cookie.txt', 'rt') as f:
cookies = f.read()
#填入token,不填则不会推送到微信
sckey ='SCU49417T9cd34e3ea9946df62765a549f19ab86d5cbd1a91e0c3d'
#日志配置
sio = StringIO('京东签到日志:\n\n')
sio.seek(0, 2)
dz = pytz.timezone('Asia/Shanghai')
nowtime = datetime.datetime.now(dz).strftime("%Y-%m-%d %H:%M:%S")
sio.write('------' + nowtime + '------')
#微信推送配置
def pushinfo(desp):
push_url = 'https://sc.ftqq.com/' + sckey + '.send'
if '已失效' in desp:
params = {
'text': 'Cookie失效',
'desp': desp
}
else:
params = {
'text': '京东签到提醒',
'desp': desp
}
requests.session().post(push_url, params)
#get
def geturl(url,refe):
header = {
'Cookie': cookies
}
if refe != None:
header["referer"] = refe
res = requests.get(url, headers=header).text
#res = json.loads(requests.get(url, data=data, headers=header))
#res = json.loads(res)
#info = res.text
return res
#post网页
def posturl(url,data,refe):
header = {
'Cookie': cookies
}
if refe != None:
header["referer"] = refe
res = requests.post(url, data=data, headers=header).text
return res
#验证登陆状态
def getlogin():
url = 'https://wq.jd.com/user/info/QueryJDUserInfo?sceneid=80027&_=1602147984799&sceneval=2&g_login_type='
#查京豆url https://bean.m.jd.com/beanDetail/index.action?resourceValue=bean
#验证登录头加入 referer
'''
header = {
'referer': 'https://wqs.jd.com/my/jingdou/my.shtml',
'Cookie': cookies
}
'''
referer = 'https://wqs.jd.com/my/jingdou/my.shtml'
res = json.loads(geturl(url, referer))
state = res['msg']
if state == 'success.':
print('欢迎登陆 '+ res['base']['nickname'])
sio.write('\n\n==========欢迎用户 '+ res['base']['nickname'] +'==========\n\n')
return state
else:
print('当前cookie已失效')
#sio.write('\n\n==========cookie已失效==========\n\n')
return state
#京东商城-京豆签到
def JingDongBean():
#url = 'https://api.m.jd.com/client.action?functionId=findBeanIndex&appid=ld&client=m&clientVersion=null&networkType=unknown&osVersion=undefined&uuid=null'
#查询登录天数
url = 'https://api.m.jd.com/client.action?functionId=signBeanIndex&appid=ld'
res = json.loads(geturl(url, None))
#res1 = res['data']
#验证json下某一key是否存在:两种方法
#print(res1.__contains__("dailyAward"))
#if 'dailyAward' in res1.keys()
if 'dailyAward' in res['data'].keys():
# 单次签到 签到奖励豆数
daily = res['data']['dailyAward']['beanAward']['beanCount']
sio.write(f'\n\n京东商城-京豆: 成功, 明细: {daily} 京豆 💰 \n\n')
elif 'continuityAward' in res['data'].keys():
# 数连续签到 签到奖励豆
continuity = res['data']['continuityAward']['beanAward']['beanCount']
sio.write(f'\n\n京东商城-京豆: 成功, 明细: {continuity} 京豆 💰 \n\n')
else:
sio.write(f'\n\n京东商城-京豆: 失败, 原因: cookie失效 ⚠ \n\n')
#京东商城-转盘抽奖
def JingDongTurn():
url = 'https://api.m.jd.com/client.action?functionId=wheelSurfIndex&body={"actId":"jgpqtzjhvaoym","appSource":"jdhome"}&appid=ld'
res = json.loads(geturl(url, None))
code = res['data']['lotteryCode']
#print(res['data']['lotteryCount'])
'''
京东商城 - 转盘有奖励: {"code":"0","data":{"isWinner":"0","chances":"0","prizeType":"5","prizeId":"960604","prizeName":"1个京豆","prizeImage":"https://img30.360buyimg.com/activity/jfs/t1/130883/1/5394/14708/5f1f9976E3b2609b5/4e68aed524a92fd5.png","tips":"京豆1个","prizeSendNumber":"1"}}
京东商城 - 转盘无奖励: {"code":"0","data":{"isWinner":"1","chances":"0","toastTxt":"啊噢,未中奖~"}}
'''
if res['data']['lotteryCount'] == '1':
#未转盘,开始转盘 wupll7s766xme4p63iqis3e5z2olgso5cosvj7bm5cszrxjcj5rpe4lg4ba6nhb6hiawzpccizuck
url2 = 'https://api.m.jd.com/client.action?functionId=lotteryDraw&body={"actId":"jgpqtzjhvaoym","appSource":"jdhome","lotteryCode":"$'+code+'"}&appid=ld'
res2 = json.loads(geturl(url2,None))
if res2['data']['isWinner'] == '0':
print('京东商城-转盘:'+str(res2))
sio.write(f'\n\n京东商城-转盘: 成功, 明细: '+ res2['data']['prizeName'] +' 💰 \n\n')
else:
sio.write(f'\n\n京东商城-转盘: 成功, 明细: ' + res2['data']['toastTxt'] + ' 💰 \n\n')
else:
#已经转盘得到结果
#print('京东商城-转盘: 失败, 原因: 已转过 ⚠')
sio.write(f'\n\n京东商城-转盘: 失败, 原因: 已转过 ⚠ \n\n')
#京东商城-摇一摇
def JingDongShake():
#查询剩余次数
url = 'https://api.m.jd.com/client.action?appid=vip_h5&functionId=vvipclub_luckyBox&body={"info":"freeTimes,title,beanNum,useBeanNum,imgUrl"}'
res = json.loads(geturl(url, None))
n = res['data']['freeTimes']
#print(res)
while n > 0:
#if res['data']['freeTimes'] > 0:
url1 = 'https://api.m.jd.com/client.action?appid=vip_h5&functionId=vvipclub_shaking&body={"type":"0","riskInfo":{"platform":1,"pageClickKey":"MJDVip_Shake","eid":"F5SHMR4IY33LMXBJO5E3UPPSNFWCFZ3CAUJ5LVDIIKLDP42FIL2XKQQZZB6WN7ABPGR7ZNRRYLGQ3S6JTDY7RKG2EU","fp":"3100680416ad5ade4c2d199af936da61","shshshfp":"2bb8c811624129ffef6831368a9ba784","shshshfpa":"295592c4-7280-1d9d-e9fb-502e8322cce7-1573122749","shshshfpb":"dPBiy3eH5ttgYmlspRhNPnA=="}}'
res1 = json.loads(geturl(url1, None))
print(res1)
n = n-1
print('剩余' + str(res1['data']['luckyBox']['freeTimes']) + '次')
if 'prizeBean' in res1['data'].keys():
sio.write(f'\n\n京东商城-摇一摇: 成功, 明细: ' + str(res1['data']['prizeBean']['count']) + ' 💰 \n\n')
else:
quota = res1['data']['prizeCoupon']['quota']
discount = res1['data']['prizeCoupon']['discount']
sio.write(f'\n\n京东商城-摇一摇: 成功, 明细: 优惠券:' + str(quota) + '-' + str(discount) + ' 💰 \n\n')
#{"data": {"luckyBox": {"costBeanCount": "2", "feeTimes": "2", "freeTimes": "1", "totalBeanCount": "4856"}, "prizeBean": {"count": "5"}}, "success": "True"}
#else:
#print("京东商城-摇摇: 失败, 原因: 已经没有次数")
sio.write(f'\n\n京东商城-摇摇: 失败, 原因: 已经没有次数 ⚠️\n\n')
#京东商城-国际
def JDOverseas():
url = 'https://api.m.jd.com/client.action?functionId=checkin&body=%7B%7D&build=167237&client=apple&clientVersion=9.0.0&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&partner=apple&scope=11&sign=e27f8b904040a0e3c99b87fc27e09c87&st=1591730990449&sv=101'
res = json.loads(geturl(url, None))
#print(res)
'''
{"result":{"type":1,"rewardDesc":"连签30天有惊喜哦~","checkinMsg":"京豆将在24小时内发放至账户","checkinTitle":"签到成功","jumpUrl":"https://pro.m.jd.com/mall/active/3YvKJrc4e4WK7aZ46j3h5UMCvEn4/index.html","jumpName":"去逛国际优品","consecutiveSignDays":1,"jdBeanAmount":1},"code":"0","success":true}
'''
if 'jdBeanAmount' in res['result'].keys():
sio.write(f'\n\n京东商城-国际: 成功, 明细: ' + str(res['result']['jdBeanAmount']) + ' 京豆 🐶 \n\n')
else:
sio.write(f'\n\n京东商城-国际: 失败, 原因: 已签过 ⚠ \n\n')
#京东现金-红包
def JingDongCash():
url = 'https://api.m.jd.com/client.action?functionId=ccSignInNew&body=%7B%22pageClickKey%22%3A%22CouponCenter%22%2C%22eid%22%3A%22O5X6JYMZTXIEX4VBCBWEM5PTIZV6HXH7M3AI75EABM5GBZYVQKRGQJ5A2PPO5PSELSRMI72SYF4KTCB4NIU6AZQ3O6C3J7ZVEP3RVDFEBKVN2RER2GTQ%22%2C%22shshshfpb%22%3A%22v1%5C%2FzMYRjEWKgYe%2BUiNwEvaVlrHBQGVwqLx4CsS9PH1s0s0Vs9AWk%2B7vr9KSHh3BQd5NTukznDTZnd75xHzonHnw%3D%3D%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22monitorSource%22%3A%22cc_sign_ios_index_config%22%7D&client=apple&clientVersion=8.5.0&d_brand=apple&d_model=iPhone8%2C2&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&scope=11&screen=1242%2A2208&sign=1cce8f76d53fc6093b45a466e93044da&st=1581084035269&sv=102'
res = json.loads(geturl(url, None))
#print(res)
#{"code":"0","success":true,"busiCode":"1002","message":"大人,您今天已经完成签到了哦~请明天再来吧~","result":{"signResult":{"msg":"大人,您今天已经完成签到了哦~请明天再来吧~","showCode":"2","bizCode":"1002","errCode":null,"signData":null,"success":false}}}
#{"code":"0","success":true,"busiCode":"0","message":"成功","result":{"signResult":{"msg":"成功","showCode":"0","bizCode":"0","errCode":null,"signData":{"id":3,"signRate":"1","ynSign":"1","amount":"0.08","subTitle":"连签7天瓜分100万","hbActId":31896,"signDetail":[{"signRate":"1","ynSign":"1","amount":"0.08","iconText":"","popText":"明天赢千份8.8红包","iconImg":null},{"signRate":"2","ynSign":"0","amount":null,"iconText":"千份8.8","popText":"明天赢最高88元红包","iconImg":null},{"signRate":"3","ynSign":"0","amount":null,"iconText":"最高88","popText":"再签2天红包金额升级","iconImg":null},{"signRate":"4","ynSign":"0","amount":null,"iconText":"","popText":"明天签到红包金额升级","iconImg":null},{"signRate":"5","ynSign":"0","amount":null,"iconText":"金额升级","popText":"再签2天瓜分100万","iconImg":null},{"signRate":"6","ynSign":"0","amount":null,"iconText":"","popText":"明天瓜分100万红包","iconImg":null},{"signRate":"7","ynSign":"0","amount":null,"iconText":"分100万","popText":"明日继续签到领红包","iconImg":"https://m.360buyimg.com/njmobilecms/jfs/t1/88571/6/17500/14934/5e869bd3Efa9de0a0/6be7ed6235cfa383.png"}]},"success":true}}}
if res['busiCode'] == '0':
amount = res['result']['signResult']['signData']['amount']
sio.write(f'\n\n京东现金-红包: 成功, 明细: ${amount}红包 🧧\n\n')
else:
sio.write(f'\n\n京东现金-红包: 失败, 原因: 今日已经签到 ⚠️\n\n')
#京东现金-魔方 未测试
def JingDongCash111():
url = 'https://api.m.jd.com/client.action?functionId=ccSignInNew&body=%7B%22pageClickKey%22%3A%22CouponCenter%22%2C%22eid%22%3A%22O5X6JYMZTXIEX4VBCBWEM5PTIZV6HXH7M3AI75EABM5GBZYVQKRGQJ5A2PPO5PSELSRMI72SYF4KTCB4NIU6AZQ3O6C3J7ZVEP3RVDFEBKVN2RER2GTQ%22%2C%22shshshfpb%22%3A%22v1%5C%2FzMYRjEWKgYe%2BUiNwEvaVlrHBQGVwqLx4CsS9PH1s0s0Vs9AWk%2B7vr9KSHh3BQd5NTukznDTZnd75xHzonHnw%3D%3D%22%2C%22childActivityUrl%22%3A%22openapp.jdmobile%253a%252f%252fvirtual%253fparams%253d%257b%255c%2522category%255c%2522%253a%255c%2522jump%255c%2522%252c%255c%2522des%255c%2522%253a%255c%2522couponCenter%255c%2522%257d%22%2C%22monitorSource%22%3A%22cc_sign_ios_index_config%22%7D&client=apple&clientVersion=8.5.0&d_brand=apple&d_model=iPhone8%2C2&openudid=1fce88cd05c42fe2b054e846f11bdf33f016d676&scope=11&screen=1242%2A2208&sign=1cce8f76d53fc6093b45a466e93044da&st=1581084035269&sv=102'
res = json.loads(geturl(url, None))
#print(res)
#{"code":"0","success":true,"busiCode":"1002","message":"大人,您今天已经完成签到了哦~请明天再来吧~","result":{"signResult":{"msg":"大人,您今天已经完成签到了哦~请明天再来吧~","showCode":"2","bizCode":"1002","errCode":null,"signData":null,"success":false}}}
#{"code":"0","success":true,"busiCode":"0","message":"成功","result":{"signResult":{"msg":"成功","showCode":"0","bizCode":"0","errCode":null,"signData":{"id":3,"signRate":"1","ynSign":"1","amount":"0.08","subTitle":"连签7天瓜分100万","hbActId":31896,"signDetail":[{"signRate":"1","ynSign":"1","amount":"0.08","iconText":"","popText":"明天赢千份8.8红包","iconImg":null},{"signRate":"2","ynSign":"0","amount":null,"iconText":"千份8.8","popText":"明天赢最高88元红包","iconImg":null},{"signRate":"3","ynSign":"0","amount":null,"iconText":"最高88","popText":"再签2天红包金额升级","iconImg":null},{"signRate":"4","ynSign":"0","amount":null,"iconText":"","popText":"明天签到红包金额升级","iconImg":null},{"signRate":"5","ynSign":"0","amount":null,"iconText":"金额升级","popText":"再签2天瓜分100万","iconImg":null},{"signRate":"6","ynSign":"0","amount":null,"iconText":"","popText":"明天瓜分100万红包","iconImg":null},{"signRate":"7","ynSign":"0","amount":null,"iconText":"分100万","popText":"明日继续签到领红包","iconImg":"https://m.360buyimg.com/njmobilecms/jfs/t1/88571/6/17500/14934/5e869bd3Efa9de0a0/6be7ed6235cfa383.png"}]},"success":true}}}
if res['busiCode'] == '0':
amount = res['result']['signResult']['signData']['amount']
sio.write(f'\n\n京东现金-红包: 成功, 明细: ${amount}红包 🧧\n\n')
else:
sio.write(f'\n\n京东金融-金贴: 失败, 原因: 今日已经签到 ⚠️\n\n')
#url: `https://api.m.jd.com/client.action?functionId=getNewsInteractionLotteryInfo&appid=smfe${id ? `&body=%7B%22interactionId%22%3A${id}%7D` : ``}`
#京东商城-大奖
#https://jdmall.m.jd.com/beansForPrizes
def JingDongPrize():
url = 'https://api.m.jd.com/client.action?functionId=vvipscdp_raffleAct_index&client=apple&clientVersion=8.1.0&appid=member_benefit_m'
header = 'https://jdmall.m.jd.com/beansForPrizes'
res = json.loads(geturl(url, header))
#print(res)
if res['data']['floorInfoList'][0]['detail']['freeTimes'] == 1:
raffleActKey = res ['data']['floorInfoList'][0]['detail']['raffleActKey']
url1 = 'https://api.m.jd.com/client.action?functionId=vvipscdp_raffleAct_lotteryDraw&body=%7B%22raffleActKey%22%3A%22'+raffleActKey+'%22%2C%22drawType%22%3A0%2C%22riskInformation%22%3A%7B%22platform%22%3A%223%22%2C%22orgType%22%3A%222%22%2C%22jda%22%3A%22-1%22%2C%22client%22%3A%22web%22%2C%22country%22%3A%22%22%2C%22language%22%3A%22%22%2C%22childActivityId%22%3A%22%22%2C%22childActiveName%22%3A%22%22%2C%22childActivityTime%22%3A%22%22%2C%22childActivityUrl%22%3A%22%22%2C%22openId%22%3A%22%22%2C%22activityArea%22%3A%22%22%2C%22applicantErp%22%3A%22%22%2C%22clientIp%22%3A%22%22%2C%22eid%22%3A%22%22%2C%22fp%22%3A%22%22%2C%22shshshfp%22%3A%22%22%2C%22shshshfpa%22%3A%22%22%2C%22shshshfpb%22%3A%22%22%2C%22clientVersion%22%3A%22%22%2C%22uuid%22%3A%22%22%2C%22osVersion%22%3A%22%22%2C%22brand%22%3A%22%22%2C%22model%22%3A%22%22%2C%22networkType%22%3A%22%22%2C%22referUrl%22%3A%22%22%2C%22userAgent%22%3A%22%22%2C%22activityType%22%3A%22%22%2C%22isRvc%22%3A%22%22%2C%22pageClickKey%22%3A%22%22%2C%22userArea%22%3A%22%22%7D%2C%22paramData%22%3A%7B%22document_business%22%3A%22vvipscdp%22%2C%22document_channel%22%3A2%2C%22channelType%22%3A1%7D%2C%22memberBenefitsVersion%22%3A%221.4%22%7D&client=apple&clientVersion=8.1.0&appid=member_benefit_m&jsonp=jsonp_1604779265424_76001'
res1 = json.loads(geturl(url1, header))
print('还有次数')
sio.write(f'\n\n京东现金-大奖: 成功, 明细: $红包 🧧\n\n')
else:
sio.write(f'\n\n京东金融-大奖: 失败, 原因: 今日已经签到 ⚠️\n\n')
print('没有次数')
#京东-种豆得豆-种豆任务列表
def JingDongDOU():
url = 'https://api.m.jd.com/client.action?functionId=plantBeanIndex&body={"monitor_source":"plant_m_plant_index","monitor_refer":"","version":"9.0.0.4"}&appid=ld&client=apple'
res = json.loads(geturl(url, None))
bubble = res['data']['roundList'][1]['bubbleInfos'] # 查询水滴气泡数
bubbleInfos = [] # 定义一个数组
a = 0
while a < len(bubble): #取完成任务数组
bubbleInfos.append(str(res['data']['roundList'][1]['bubbleInfos'][a]['nutrientsType'])) # 查询第一个水滴气泡id
a = a + 1
#print(bubbleInfos) #输出水滴id
taskList = res['data']['taskList'] #任务列表数
print('总任务数:'+str(len(taskList))) #输出需要完成任务数量
a = 0
while a < len(taskList):
#time.sleep(2)
taskType = res['data']['taskList'][a]['taskType']
btnTxt = res['data']['taskList'][a]['btnTxt']
print('任务编号:'+ str(taskType) +' 任务状态:'+ btnTxt)
if btnTxt != '已完成':
# 1 == 每日签到;4 == 逛逛会场;40 == 食品饮料;18 == 1元包邮;36 == 免费水果;39 == 城城分现金
#if str(taskType) not in bubbleInfos:
if taskType == 1:
print('每日签到')
elif taskType == 3:
totalNum = res['data']['taskList'][a]['totalNum']
gainedNum = res['data']['taskList'][a]['gainedNum']
print('浏览店铺完成状态 :' + gainedNum + '/' + totalNum)
sio.write(f'\n\n种豆得豆-浏览店铺完成状态: ' + gainedNum + '/' + totalNum + '️\n\n')
JDZhongDOU2(totalNum, gainedNum)
elif taskType == 10:
totalNum = res['data']['taskList'][a]['totalNum']
gainedNum = res['data']['taskList'][a]['gainedNum']
print('关注频道完成状态 :' + gainedNum + '/' + totalNum)
sio.write(f'\n\n种豆得豆-关注频道完成状态: ' + gainedNum + '/' + totalNum + '️\n\n')
JDZhongDOU3(totalNum, gainedNum)
elif taskType == 5:
totalNum = res['data']['taskList'][a]['totalNum']
gainedNum = res['data']['taskList'][a]['gainedNum']
print('挑选商品完成状态 :' + gainedNum + '/' + totalNum)
sio.write(f'\n\n种豆得豆-挑选商品完成状态: ' + gainedNum + '/' + totalNum + '️\n\n')
JDZhongDOU4(totalNum, gainedNum)
else:
taskname = res['data']['taskList'][a]['taskName']
print('正在完成:'+ taskname)
JDZhongDOU1(taskType,taskname)
else:
#print('任务已完成')
sio.write(f'\n\n种豆得豆-任务状态: 任务已完成️\n\n')
a = a + 1
time.sleep(2)
#print('所有已完成')
sio.write(f'\n\n种豆得豆-任务列表: 结束, 原因: 全部任务已完成 ⚠ \n\n')
JDZhongDOU0()
#京东-种豆-收取营养液
def JDZhongDOU0():
url = 'https://api.m.jd.com/client.action?functionId=plantBeanIndex&body={"monitor_source":"plant_m_plant_index","monitor_refer":"","version":"9.0.0.4"}&appid=ld&client=apple'
res = json.loads(geturl(url, None))
roundId = res['data']['roundList'][1]['roundId'] # 必须! 取出roundId
#print(roundId)
code = res['data']['roundList'][1]['bubbleInfos'] # 多少个可以收取的营养液
code = json.loads(json.dumps(code))
#print(code) #输出多少个可以收取的营养液
if len(code) != 0 :
count = 0 # 次数置零
while (count != len(code)) :
nutrientsType = res['data']['roundList'][1]['bubbleInfos'][count]['nutrientsType'] #取出nutrientsType
url = 'https://api.m.jd.com/client.action?functionId=cultureBean&body={"roundId":"' + roundId + '","nutrientsType":"'+ nutrientsType +'","monitor_source":"plant_m_plant_index","monitor_refer":"plant_index","version":"9.0.0.4"}&appid=ld&client=apple'
res1 = geturl(url, None)
res1 = json.loads(res1)
#print(nutrientsType)
if ('data' in res1) :
code1 = res1['data']['beanState']
#print('已收取营养液:' + code1)
sio.write(f'\n\n种豆得豆-收营养液: 成功, 明细: 收取营养液'+ res1['data']['beanState'] +' ⚠ \n\n')
count = count + 1
time.sleep(2)
#print('营养液已经收取完')
sio.write(f'\n\n种豆得豆-收营养液: 结束, 原因: 全部营养液已收取完 ⚠ \n\n')
else:
#print('没有可收')
sio.write(f'\n\n种豆得豆-收营养液: 结束, 原因: 已没有可收营养液 ⚠ \n\n')
#京东-种豆-通用任务方式
def JDZhongDOU1(num,taskname):
url = 'https://api.m.jd.com/client.action?functionId=receiveNutrientsTask&body={"awardType":"' + str(num) + '","monitor_source":"plant_m_plant_index","monitor_refer":"plant_receiveNutrientsTask","version":"9.0.0.4"}&appid=ld&client=apple'
res = json.loads(geturl(url, None))
code = res['data']['nutrNum']
#print(code)
if code == 1:
#print('成功获得营养液')
sio.write(f'\n\n种豆得豆-通用任务: '+taskname+'完成 , 成功获得营养液 ⚠ \n\n')
#京东-种豆-浏览店铺任务
def JDZhongDOU2(totalNum,gainedNum):
url = 'https://api.m.jd.com/client.action?functionId=shopTaskList&body={"monitor_source":"plant_m_plant_index","monitor_refer":"plant_shopList","version":"9.0.0.4"}&appid=ld'
res = json.loads(geturl(url, None))
num = int(totalNum) - int(gainedNum) #计算剩余次数
a = 0
b = 0
while b < num:
shopTaskId = res['data']['moreShopList'][a]['shopTaskId']
shopId = res['data']['moreShopList'][a]['shopId']
url1 = 'https://api.m.jd.com/client.action?functionId=shopNutrientsTask&body={"shopTaskId":"'+shopTaskId+'","shopId":"'+shopId+'","monitor_source":"plant_m_plant_index","monitor_refer":"plant_shopNutrientsTask","version":"9.0.0.4"}&appid=ld'
res1 = json.loads(geturl(url1, None))
#print(res1) #{"code":"0","data":{"nutrState":"3"}}
if res1['data']['nutrState'] == '1':
#print('关注成功,获得1瓶营养液')
sio.write(f'\n\n京东商城-种豆-浏览店铺任务: 成功, 明细: 获得1瓶营养液 ⚠ \n\n')
b = b + 1
elif b == 4:
continue
a = a + 1
time.sleep(4)
#京东-种豆-关注频道任务
def JDZhongDOU3(totalNum,gainedNum):
url = 'https://api.m.jd.com/client.action?functionId=plantChannelTaskList&body={}&appid=ld'
res = json.loads(geturl(url, None))
num = int(totalNum) - int(gainedNum)
a = 0
b = 0
while b < num:
channelTaskId = res['data']['normalChannelList'][a]['channelTaskId']
channelId = res['data']['normalChannelList'][a]['channelId']
url1 = 'https://api.m.jd.com/client.action?functionId=plantChannelNutrientsTask&body={"channelTaskId":"'+str(channelTaskId)+'","channelId":"'+str(channelId)+'"}&uuid=16023137222221788117012&appid=ld'
res1 = json.loads(geturl(url1, None))
print(res1)
print(a)
if res1['data']['nutrState'] == '1':
print('关注成功,获得1瓶营养液')
sio.write(f'\n\n京东商城-种豆-关注商品任务: 成功, 明细: 获得1瓶营养液 ⚠ \n\n')
b = b + 1
elif b == 3:
continue
a = a + 1
time.sleep(4)
#京东-种豆-挑选商品任务
def JDZhongDOU4(totalNum,gainedNum):
url = 'https://api.m.jd.com/client.action?functionId=productTaskList&body={"monitor_source":"plant_m_plant_index","monitor_refer":"plant_productTaskList","version":"9.0.0.4"}&appid=ld'
res = json.loads(geturl(url, None))
num = int(totalNum) - int(gainedNum)
a = 0
b = 0
while b < num:
productTaskId = res['data']['productInfoList'][a][0]['productTaskId']
skuId = res['data']['productInfoList'][a][0]['skuId']
state = res['data']['productInfoList'][a][0]['taskState']
#print(state +' productTaskId ' +productTaskId + ' skuId ' + skuId) #打印关注状态+店铺id+商品id
a = a + 1
if state == '2':
url1 = 'https://api.m.jd.com/client.action?functionId=productNutrientsTask&body={"productTaskId":"' + str(productTaskId) + '","skuId":"' + str(skuId) + '","monitor_source":"plant_m_plant_index","monitor_refer":"plant_productNutrientsTask","version":"9.0.0.4"}&appid=ld&client=apple'
res1 = geturl(url1, None)
res1 = json.loads(res1)
#print(res1) #打印点击关注返回 #{"code":"0","data":{"nutrState":"1","followState":"1","nutrToast":"关注成功,获得1瓶营养液","nutrCount":"1"}}
if res1['data']['nutrState'] == '1':
b = b + 1
#print('关注成功,获得1瓶营养液')
sio.write(f'\n\n京东商城-种豆-关注商品任务: 成功, 明细: 获得1瓶营养液 ⚠ \n\n')
time.sleep(4)
#京东金融-金贴
def JingRongBean():
url = 'https://ms.jr.jd.com/gw/generic/zc/h5/m/queryOpenScreenReward'
params = {'reqData': '{"channelCode":"ZHUANQIAN","clientType":"sms","clientVersion":"11.0"}'}
header = 'https://active.jd.com/forever/cashback/index'
res = json.loads(posturl(url, params, header))
code = res['resultData']['data']['rewardAmount']
#false = False
if res['resultData']['data']['reward'] == False:
url1 = 'https://ms.jr.jd.com/gw/generic/zc/h5/m/openScreenReward'
res1 = json.loads(posturl(url1, params, header))
if res1['resultData']['data']['rewardCode'] == '00000':
#print('京东金融-金贴: 成功, 明细: ' + code + '金贴 💰')
sio.write(f'\n\n京东商城-金贴: 成功, 明细: ' + str(code) + '金贴 💰 \n\n')
else:
#print('京东金融-金贴: 失败, 原因: ' + res1['resultMsg'])
sio.write(f'\n\n京东金融-金贴: 失败, 原因: '+ res1['resultMsg'] +'⚠️\n\n')
else:
#print('京东金融-金贴: 失败, 原因: 已签过⚠️')
sio.write(f'\n\n京东金融-金贴: 失败, 原因: 已签过⚠️\n\n')
#京东金融-钢镚
#https://member.jr.jd.com/activities/sign/v5/indexV2.html?channel=gry&jrcontainer=h5&jrlogin=true&sid=c86b2596d778ef5644c3169af4d8fddw&utm_term=qqfriends&utm_source=iOS*url*1604785537105&utm_medium=jrappshare
def JingRongSteel():
url = 'https://ms.jr.jd.com/gw/generic/gry/h5/m/signIn?reqData=%7B%22channelSource%22%3A%22JRAPP%22%2C%22riskDeviceParam%22%3A%22%7B%7D%22%7D'
res = json.loads(geturl(url, None))
#print(res)
#{"resultCode":0,"resultMsg":"操作成功","resultData":{"resBusiData":{"actualTotalRewardsValue":1,"receiveBasicReward":{"activityId":"1906508","rewardName":"钢镚","rewardId":"3359","multipleValue":1,"rewardType":1,"basicValue":1,"id":7,"actualBasicRewardsValue":1,"weekendValue":0},"continuityDays":1,"identity":"identity5"},"resBusiMsg":"操作成功","resBusiCode":0},"channelEncrypt":0}
#{"resultCode":0,"resultMsg":"操作成功","resultData":{"resBusiMsg":"已经领取过","resBusiCode":15},"channelEncrypt":0}
# resBusiCode=0 未签到 resBusiCode=15 已签到
if res['resultData']['resBusiCode'] == '0':
code = res['resultData']["resBusiData"]['actualTotalRewardsValue']
#print('京东金融-钢镚:成功, 明细: ' + code + '钢镚 💰')
sio.write(f'\n\n京东商城-钢镚: 成功, 明细: ' + code + '钢镚 💰 \n\n')
elif res['resultData']['resBusiCode'] == '15':
#print('京东金融-钢镚:失败, 原因: 已签过 ⚠️')
sio.write(f'\n\n京东金融-钢镚:失败, 原因: 已签过 ⚠️\n\n')
elif res['resultData']['resBusiCode'] == '5':
#print('京东金融-钢镚:失败, 原因: '+res['resultData']['resBusiMsg']+' ⚠️')
sio.write(f'\n\n京东金融-钢镚: 失败, 原因: '+res['resultData']['resBusiMsg']+' ⚠️\n\n')
else:
#print('京东金融-钢镚:失败, 原因: '+res['resultData']['resBusiMsg']+'⚠️')
sio.write(f'\n\n京东金融-钢镚: 失败, 原因: ' + res['resultData']['resBusiMsg'] + ' ⚠️\n\n')
#京东金融-双签
def JRDoubleSign():
url = 'https://nu.jr.jd.com/gw/generic/jrm/h5/m/process?'
datas = {'reqData': '{"actCode":"FBBFEC496C","type":3,"riskDeviceParam":""}'}
res = json.loads(posturl(url, datas, None))
#res = requests.post(url, data=datas, headers=header,allow_redirects=False)
#print(res)
if res['resultData']['data']['businessData']['businessCode'] == '000sq':
code = res ['resultData']['data']['businessData']['businessData']['awardListVo'][0]['count']
sio.write(f'\n\n京东商城-双签: 成功, 明细: ' + str(code) + '京豆 🐶 \n\n')
elif res['resultData']['data']['businessData']['businessCode'] == '300sq':
sio.write(f'\n\n京东商城-双签: 失败, 原因: 当天已领取 ⚠ \n\n')
elif res['resultData']['data']['businessData']['businessCode'] == '302sq':
sio.write(f'\n\n京东商城-双签: 失败, 原因: 未在京东app签到 ⚠ \n\n')
else:
sio.write(f'\n\n京东商城-双签: 失败, 原因: 异常 ⚠ \n\n')
def main(*args):
state = getlogin()
if 'success' in state :
JingDongBean() ##京东商城-京豆签到
JingDongTurn() #京东商城-转盘抽奖
JingDongShake() #京东商城-摇一摇
JingRongBean() #京东金融-金贴 √
JingRongSteel() #京东金融-钢镚
JRDoubleSign() #京东金融-双签
JingDongCash() #京东现金-红包
JDOverseas() #京东商城-国际
#JingDongPrize() #京东商城-大奖
JingDongDOU() #京东-种豆得豆
else :
sio.write('\n\n==========cookie已失效2==========\n\n')
desp = sio.getvalue()
if sckey != '':
pushinfo(desp)
else:
print('未推送')
print(desp)
if __name__ == '__main__':
main()
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/TiAmo_ray/jd_tools.git
git@gitee.com:TiAmo_ray/jd_tools.git
TiAmo_ray
jd_tools
JD_tools
master

搜索帮助