1
0
mirror of https://github.com/6dylan6/jdpro.git synced 2026-04-23 04:44:23 +08:00
This commit is contained in:
2024
2024-05-27 07:23:28 +08:00
parent f91557e598
commit 7e302082d3
2 changed files with 35 additions and 8 deletions
+28 -8
View File
@@ -11,8 +11,9 @@ new Env('豆子7天统计');
import requests
import datetime
import random
import os,re,sys,json,time
from urllib.parse import unquote
from urllib.parse import unquote,quote
from datetime import timedelta
from datetime import timezone
@@ -31,7 +32,23 @@ session = requests.session()
session.keep_alive = False
url = "https://api.m.jd.com/api"
def getua():
global uuid,addressid,iosVer,iosV,clientVersion,iPhone,area,ADID,lng,lat
uuid=''.join(random.sample(['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','0','1','2','3','4','5','6','7','8','9','a','b','c','z'], 40))
addressid = ''.join(random.sample('1234567898647', 10))
iosVer = ''.join(random.sample(["15.1.1","14.5.1", "14.4", "14.3", "14.2", "14.1", "14.0.1"], 1))
iosV = iosVer.replace('.', '_')
clientVersion=''.join(random.sample(["10.3.0", "10.2.7", "10.2.4"], 1))
iPhone = ''.join(random.sample(["8", "9", "10", "11", "12", "13"], 1))
area=''.join(random.sample('0123456789', 2)) + '_' + ''.join(random.sample('0123456789', 4)) + '_' + ''.join(random.sample('0123456789', 5)) + '_' + ''.join(random.sample('0123456789', 4))
ADID = ''.join(random.sample('0987654321ABCDEF', 8)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 4)) + '-' + ''.join(random.sample('0987654321ABCDEF', 12))
lng='119.31991256596'+str(random.randint(100,999))
lat='26.1187118976'+str(random.randint(100,999))
UserAgent=''
if not UserAgent:
return f'jdapp;iPhone;10.0.4;{iosVer};{uuid};network/wifi;ADID/{ADID};model/iPhone{iPhone},1;addressid/{addressid};appBuild/167707;jdSupportDarkMode/0;Mozilla/5.0 (iPhone; CPU iPhone OS {iosV} like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/null;supportJDSHWK/1'
else:
return UserAgent
def gen_body(page):
body = {
"beginDate": datetime.datetime.utcnow().replace(tzinfo=timezone.utc).astimezone(SHA_TZ).strftime("%Y-%m-%d %H:%M:%S"),
@@ -170,8 +187,8 @@ def get_beans_7days(ck):
day_7 = True
page = 0
headers = {
"Host": "api.m.jd.com",
"User-Agent": "Mozilla/5.0 (Linux; Android 10; MI 9 Build/QKQ1.190825.002; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2797 MMWEBSDK/201201 Mobile Safari/537.36 MMWEBID/7986 MicroMessenger/8.0.1840(0x2800003B) Process/appbrand4 WeChat/arm64 Weixin NetType/4G Language/zh_CN ABI/arm64 MiniProgramEnv/android",
"Host": "bean.m.jd.com",
"User-Agent": getua(),
"Content-Type": "application/x-www-form-urlencoded;",
"Cookie": ck,
}
@@ -182,11 +199,13 @@ def get_beans_7days(ck):
beans_out = {key: 0 for key in days}
while day_7:
page = page + 1
url="https://api.m.jd.com/client.action?functionId=getJingBeanBalanceDetail&body=%7B%22pageSize%22%3A%2220%22%2C%22page%22%3A%22"+str(page)+"%22%7D&appid=ld"
resp = session.get(url, headers=headers, timeout=1000).text
url="https://bean.m.jd.com/beanDetail/detail.json?page="+str(page)
data='body='+quote(str({"pageSize":"20","page":str(page)}))+'&appid=ld'
resp = session.post(url, headers=headers, data=data ,timeout=1000).text
res = json.loads(resp)
if res['code'] == '0' :
for i in res['detailList']:
for i in res['jingDetailList']:
for date in days:
if str(date) in i['date'] and int(i['amount']) > 0:
beans_in[str(date)] = beans_in[str(date)] + int(i['amount'])
@@ -210,7 +229,7 @@ def get_total_beans(ck):
try:
headers = {
"Host": "me-api.jd.com",
"User-Agent": "jdapp;iPhone;9.4.4;14.3;network/4g;Mozilla/5.0 (iPhone; CPU iPhone OS 14_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148;supportJDSHWK/1",
"User-Agent": getua(),
"Content-Type": "application/x-www-form-urlencoded;",
"Cookie": ck,
#"Referer": 'https://wqs.jd.com/my/jingdou/my.shtml?sceneval=2'
@@ -218,6 +237,7 @@ def get_total_beans(ck):
jurl = "https://me-api.jd.com/user_new/info/GetJDUserInfoUnion"
resp = requests.get(jurl, headers=headers).text
res = json.loads(resp)
#print(res)
return res['data']['assetInfo']['beanNum']
except Exception as e:
printf(str(e))
File diff suppressed because one or more lines are too long