mirror of
https://github.com/shufflewzc/faker2.git
synced 2025-04-29 14:28:45 +08:00
update
This commit is contained in:
parent
335a4b9fab
commit
80261fcf20
File diff suppressed because one or more lines are too long
66
jd_wsck.py
66
jd_wsck.py
@ -53,12 +53,12 @@ def get_proxy_api(proxy_url, max_retries=5, timeout=60, retry_delay=1):
|
|||||||
if response.status_code == 200:
|
if response.status_code == 200:
|
||||||
return proxy_address
|
return proxy_address
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"代理检测失败,错误信息:{e}")
|
printf(f"代理检测失败,错误信息:{e}")
|
||||||
|
|
||||||
print("代理检测失败,重新获取...")
|
printf("代理检测失败,重新获取...")
|
||||||
time.sleep(retry_delay)
|
time.sleep(retry_delay)
|
||||||
|
|
||||||
print("无法获取可用的代理IP,尝试次数已达上限。")
|
printf("无法获取可用的代理IP,尝试次数已达上限。")
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
|
||||||
@ -135,7 +135,8 @@ def send_notification(title, content,summary):
|
|||||||
|
|
||||||
|
|
||||||
def randomstr(num):
|
def randomstr(num):
|
||||||
randomstr = ''.join(str(uuid.uuid4()).split('-'))[num:]
|
#randomstr = ''.join(str(uuid.uuid4()).split('-'))[num:]
|
||||||
|
randomstr = ''.join(str(uuid.uuid4()).split('-'))
|
||||||
return randomstr
|
return randomstr
|
||||||
|
|
||||||
def randomstr1(num):
|
def randomstr1(num):
|
||||||
@ -199,9 +200,46 @@ def get_sign(functionId, body, client : str="android", clientVersion : str='11.2
|
|||||||
all_arg = "functionId=%s&body=%s&uuid=%s&client=%s&clientVersion=%s&st=%s&sv=%s" % (functionId, body, suid, client, clientVersion, st, sv)
|
all_arg = "functionId=%s&body=%s&uuid=%s&client=%s&clientVersion=%s&st=%s&sv=%s" % (functionId, body, suid, client, clientVersion, st, sv)
|
||||||
back_bytes = sign_core(str.encode(all_arg))
|
back_bytes = sign_core(str.encode(all_arg))
|
||||||
sign = hashlib.md5(base64.b64encode(back_bytes)).hexdigest()
|
sign = hashlib.md5(base64.b64encode(back_bytes)).hexdigest()
|
||||||
convertUrl='functionId=%s&body=%s&clientVersion=%s&client=%s&sdkVersion=31&lang=zh_CN&harmonyOs=0&networkType=wifi&oaid=%s&eid=%s&ef=1&ep=%s&st=%s&sign=%s&sv=%s' % (functionId,body, clientVersion, client, suid, eid, urllib.parse.quote(ep), st, sign, sv)
|
#convertUrl='body=%s&clientVersion=%s&client=%s&sdkVersion=31&lang=zh_CN&harmonyOs=0&networkType=wifi&oaid=%s&eid=%s&ef=1&ep=%s&st=%s&sign=%s&sv=%s' % (body, clientVersion, client, suid, eid, urllib.parse.quote(ep), st, sign, sv)
|
||||||
|
convertUrl='body=%s&clientVersion=%s&client=%s&sdkVersion=31&lang=zh_CN&harmonyOs=0&networkType=wifi&oaid=%s&ef=1&ep=%s&st=%s&sign=%s&sv=%s' % (body, clientVersion, client, suid, urllib.parse.quote(ep), st, sign, sv)
|
||||||
return convertUrl
|
return convertUrl
|
||||||
|
|
||||||
|
def get_sign_diy(pin):
|
||||||
|
url = signapi
|
||||||
|
body_content = {"url": "https://plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html"}
|
||||||
|
data_json = {
|
||||||
|
'fn': 'genToken',
|
||||||
|
'body': json.dumps(body_content)
|
||||||
|
}
|
||||||
|
headers_json = {"Content-Type": "application/json"}
|
||||||
|
|
||||||
|
# 尝试发送 JSON 数据
|
||||||
|
try:
|
||||||
|
response = requests.post(url=url, headers=headers_json, json=data_json, verify=False)
|
||||||
|
response.raise_for_status()
|
||||||
|
sign = response.json()
|
||||||
|
if 'body' not in sign:
|
||||||
|
raise ValueError("JSON 响应中不含 'body' 字段")
|
||||||
|
return sign['body']
|
||||||
|
except (requests.HTTPError, ValueError) as e:
|
||||||
|
#printf(f"尝试发送 JSON 数据失败或响应中没有 'body': {e}")
|
||||||
|
try:
|
||||||
|
headers_form = {"Content-Type": "application/x-www-form-urlencoded"}
|
||||||
|
data_form = {
|
||||||
|
'functionId': 'genToken',
|
||||||
|
'body': json.dumps(body_content)
|
||||||
|
}
|
||||||
|
response = requests.post(url=url, headers=headers_form, data=data_form, verify=False)
|
||||||
|
response.raise_for_status()
|
||||||
|
sign = response.json()['data']
|
||||||
|
# 再次检查响应中是否包含 'body' 字段
|
||||||
|
if 'body' not in sign:
|
||||||
|
raise ValueError("表单响应中不含 'body' 字段")
|
||||||
|
return sign['convertUrl']
|
||||||
|
except Exception as e2:
|
||||||
|
printf(f"尝试获取 {unquote(pin)} 的签名时出错:\n{e2}")
|
||||||
|
return sign
|
||||||
|
|
||||||
def getcookie_wskey(key):
|
def getcookie_wskey(key):
|
||||||
proxys = proxy_url
|
proxys = proxy_url
|
||||||
if os.environ.get("WSKEY_PROXY_URL") is not None:
|
if os.environ.get("WSKEY_PROXY_URL") is not None:
|
||||||
@ -210,9 +248,11 @@ def getcookie_wskey(key):
|
|||||||
body = "body=%7B%22to%22%3A%22https%3A//plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html%22%7D"
|
body = "body=%7B%22to%22%3A%22https%3A//plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html%22%7D"
|
||||||
pin = findall("pin=([^;]*);", key)[0]
|
pin = findall("pin=([^;]*);", key)[0]
|
||||||
|
|
||||||
|
|
||||||
for num in range(0,5):
|
for num in range(0,5):
|
||||||
sign = get_sign("genToken",{"url": "https://plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html"},"android","11.2.8")
|
sign = get_sign("genToken",{"url": "https://plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html"},"android","11.2.8")
|
||||||
|
#sign = get_sign_diy(pin)
|
||||||
|
if not sign:
|
||||||
|
continue
|
||||||
url = f"https://api.m.jd.com/client.action?functionId=genToken&{sign}"
|
url = f"https://api.m.jd.com/client.action?functionId=genToken&{sign}"
|
||||||
headers = {
|
headers = {
|
||||||
"cookie": key,
|
"cookie": key,
|
||||||
@ -224,10 +264,10 @@ def getcookie_wskey(key):
|
|||||||
token = post(url=url, headers=headers, data=body, verify=False, proxies={"http": proxys, "https": proxys}).json()
|
token = post(url=url, headers=headers, data=body, verify=False, proxies={"http": proxys, "https": proxys}).json()
|
||||||
token=token['tokenKey']
|
token=token['tokenKey']
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
print(f"【警告】{unquote(pin)}在获取token时失败,等待5秒后重试")
|
printf(f"【警告】{unquote(pin)}在获取token时失败,等待5秒后重试")
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
if num == 4:
|
if num == 4:
|
||||||
print(f"【错误】{unquote(pin)}在获取token时:\n{error}")
|
printf(f"【错误】{unquote(pin)}在获取token时:\n{error}")
|
||||||
return pin, "False"
|
return pin, "False"
|
||||||
randomuserAgent()
|
randomuserAgent()
|
||||||
if os.environ.get("WSKEY_PROXY_URL") is not None:
|
if os.environ.get("WSKEY_PROXY_URL") is not None:
|
||||||
@ -260,11 +300,11 @@ def getcookie_wskey(key):
|
|||||||
res = get(url=url, params=params, verify=False,
|
res = get(url=url, params=params, verify=False,
|
||||||
allow_redirects=False, proxies={"http": proxys, "https": proxys}).cookies.get_dict()
|
allow_redirects=False, proxies={"http": proxys, "https": proxys}).cookies.get_dict()
|
||||||
except Exception as error:
|
except Exception as error:
|
||||||
print(f"【警告】{unquote(pin)}在获取cookie时失败,等待5秒后重试")
|
printf(f"【警告】{unquote(pin)}在获取cookie时失败,等待5秒后重试")
|
||||||
time.sleep(5)
|
time.sleep(5)
|
||||||
if num == 4:
|
if num == 4:
|
||||||
# 最后一次重试时输出错误消息并返回 "Error"
|
# 最后一次重试时输出错误消息并返回 "Error"
|
||||||
print(f"【错误】{unquote(pin)}在获取cookie时:\n{error}")
|
printf(f"【错误】{unquote(pin)}在获取cookie时:\n{error}")
|
||||||
return "Error"
|
return "Error"
|
||||||
randomuserAgent()
|
randomuserAgent()
|
||||||
if os.environ.get("WSKEY_PROXY_URL") is not None:
|
if os.environ.get("WSKEY_PROXY_URL") is not None:
|
||||||
@ -431,10 +471,10 @@ def main():
|
|||||||
iswxpusher=False
|
iswxpusher=False
|
||||||
|
|
||||||
if proxy_url is None:
|
if proxy_url is None:
|
||||||
print("没有配置代理,无法使用代理!\n请配置环境变量WSKEY_PROXY_TUNNRL或WSKEY_PROXY_URL\n")
|
printf("没有配置代理,无法使用代理!\n请配置环境变量WSKEY_PROXY_TUNNRL或WSKEY_PROXY_URL\n")
|
||||||
print("====================================")
|
printf("====================================")
|
||||||
else:
|
else:
|
||||||
print(f"已配置代理: {proxy_url}\n")
|
printf(f"已配置代理: {proxy_url}\n")
|
||||||
|
|
||||||
resurt=""
|
resurt=""
|
||||||
resurt1=""
|
resurt1=""
|
||||||
|
Loading…
Reference in New Issue
Block a user