1
0
mirror of https://github.com/6dylan6/jdpro.git synced 2026-02-04 14:03:13 +08:00

Compare commits

...

4 Commits

Author SHA1 Message Date
roiding
61cc62d89a claude是sb,还得自己改 2025-05-17 15:06:52 +08:00
roiding
0791380bf5 单token情况下转base64 2025-05-17 15:02:28 +08:00
roiding
2897769d6a 保持与js部分的代理服务器的环境变量一致,减少人为难度 2025-05-17 14:57:38 +08:00
roiding
de672bfec6 python天然不支持带认证的URL,需要做适配 2025-05-17 14:56:46 +08:00

View File

@@ -42,8 +42,29 @@ def randomuserAgent():
def get_proxy_api(proxy_url, max_retries=5, timeout=60, retry_delay=1):
session = requests.Session()
for retry in range(max_retries):
res = get(url=proxy_url)
if '@' in proxy_url:
# 解析认证信息
auth_part, url_part = proxy_url.split('@')
protocol = auth_part.split('://')[0]
auth_part = auth_part.split('://')[1]
host = url_part
# 处理只有 token 的情况
if ':' in auth_part:
username, password = auth_part.split(':')
session.auth = (username, password)
else:
# 只有 token 的情况,需要 base64 编码
token = auth_part
token_b64 = base64.b64encode(token.encode()).decode()
session.headers.update({'Authorization': f'Basic {token_b64}'})
res = session.get(f"{protocol}://{host}", verify=False, timeout=timeout)
else:
res = session.get(proxy_url, verify=False, timeout=timeout)
printf(f"本次获取到的代理:{res.text}")
proxy_ip_port = res.text.strip()
proxy_address = f"http://{proxy_ip_port}"
@@ -242,7 +263,7 @@ def get_sign_diy(pin):
def getcookie_wskey(key):
proxys = proxy_url
if os.environ.get("WSKEY_PROXY_URL") is not None:
if os.environ.get("DY_PROXY") is not None:
proxys = get_proxy_api(proxy_url)
body = "body=%7B%22to%22%3A%22https%3A//plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html%22%7D"
@@ -270,7 +291,7 @@ def getcookie_wskey(key):
printf(f"【错误】{unquote(pin)}在获取token时\n{error}")
return pin, "False"
randomuserAgent()
if os.environ.get("WSKEY_PROXY_URL") is not None:
if os.environ.get("DY_PROXY") is not None:
proxys = get_proxy_api(proxy_url)
continue
@@ -280,7 +301,7 @@ def getcookie_wskey(key):
printf(f"【警告】{unquote(pin)}在获取token时失败等待5秒后重试")
time.sleep(5)
randomuserAgent()
if os.environ.get("WSKEY_PROXY_URL") is not None:
if os.environ.get("DY_PROXY") is not None:
proxys = get_proxy_api(proxy_url)
if token=="xxx":
@@ -307,7 +328,7 @@ def getcookie_wskey(key):
printf(f"【错误】{unquote(pin)}在获取cookie时\n{error}")
return "Error"
randomuserAgent()
if os.environ.get("WSKEY_PROXY_URL") is not None:
if os.environ.get("DY_PROXY") is not None:
proxys = get_proxy_api(proxy_url)
continue
@@ -442,13 +463,13 @@ def main():
printf("版本: 20230602")
printf("说明: 如果用Wxpusher通知需配置WP_APP_TOKEN_ONE和WP_APP_MAIN_UID其中WP_APP_MAIN_UID是你的Wxpusher UID")
printf("隧道型代理池接口:export WSKEY_PROXY_TUNNRL='http://127.0.0.1:123456'")
printf("拉取型代理API接口(数据格式:txt;提取数量:每次一个):export WSKEY_PROXY_URL='http://xxx.com/apiUrl'")
printf("拉取型代理API接口(数据格式:txt;提取数量:每次一个):export DY_PROXY='http://xxx.com/apiUrl'")
printf("没有代理可以自行注册比如携趣巨量每日免费1000IP完全够用")
printf("====================================")
config=""
envtype=""
global proxy_url
proxy_url=os.environ.get("WSKEY_PROXY_URL") or os.environ.get("WSKEY_PROXY_TUNNRL") or None
proxy_url=os.environ.get("DY_PROXY") or os.environ.get("WSKEY_PROXY_TUNNRL") or None
iswxpusher=False
counttime=0
@@ -479,7 +500,7 @@ def main():
iswxpusher=False
if proxy_url is None:
printf("没有配置代理,无法使用代理!\n请配置环境变量WSKEY_PROXY_TUNNRL或WSKEY_PROXY_URL\n")
printf("没有配置代理,无法使用代理!\n请配置环境变量WSKEY_PROXY_TUNNRL或DY_PROXY\n")
printf("====================================")
else:
printf(f"已配置代理: {proxy_url}\n")