Zy143L / wskey

wskey
MIT License
1.22k stars 464 forks source link

第6位WSCK检查与转换固定报错,只与WSCK位次有关 #301

Closed refined-fish closed 8 months ago

refined-fish commented 8 months ago

预期情况

正常进行cookie检查,WSCK转换

实际情况

近几天以来,查看日志发现脚本运行前五个WSCK正常,第六个开始出现报错如下

pt_pin=jd_XXXXXXXXXX;检索成功

Traceback (most recent call last):
  File "/ql/data/scripts/Zy143L_wskey/wskey.py", line 551, in <module>
    if not check_ck(jck):  # bool: False 判定 JD_COOKIE 有效性
           ^^^^^^^^^^^^^
  File "/ql/data/scripts/Zy143L_wskey/wskey.py", line 246, in check_ck
    code = int(json.loads(res.text)['retcode'])  # 使用 Json模块对返回数据取值 int([retcode])
               ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'retcode'

实测WSCK本身未失效,调换顺序可复现固定第6位WSCK出现该报错,前5个检查/转换正常

运行环境

青龙面板:v2.17.0 设置环境变量:export WSKEY_SLEEP="5"

refined-fish commented 8 months ago

补充

如果删除第6位WSCK对应的Cookie,则可以成功转换第6位的WSCK,但是第7位WSCK仍然获得同样报错并脚本终止运行,而再次运行脚本后第6位仍然报错,如此往复

refined-fish commented 8 months ago

Debug模式日志如下

暂停5秒

pt_pin=XXXXXXXXXXX;检索成功

Starting new HTTPS connection (1): me-api.jd.com:443
https://me-api.jd.com:443 "GET /user_new/info/GetJDUserInfoUnion HTTP/1.1" 200 None
Traceback (most recent call last):
  File "/ql/data/scripts/Zy143L_wskey/wskey.py", line 551, in <module>
    if not check_ck(jck):  # bool: False 判定 JD_COOKIE 有效性
           ^^^^^^^^^^^^^
  File "/ql/data/scripts/Zy143L_wskey/wskey.py", line 246, in check_ck
    code = int(json.loads(res.text)['retcode'])  # 使用 Json模块对返回数据取值 int([retcode])
               ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'retcode'

## 执行结束... 2024-01-27 17:29:44  耗时 28 秒 
refined-fish commented 8 months ago

添加logger.info(res.text)后日志如下

似乎与问题 #299 相关

暂停5秒

pt_pin=jd_XXXXXXXXX;检索成功

Starting new HTTPS connection (1): me-api.jd.com:443
https://me-api.jd.com:443 "GET /user_new/info/GetJDUserInfoUnion HTTP/1.1" 200 None
{"code":"0","errMsg":"请求异常","errorCode":-100}
Traceback (most recent call last):
  File "/ql/data/scripts/Zy143L_wskey/wskey.py", line 552, in <module>
    if not check_ck(jck):  # bool: False 判定 JD_COOKIE 有效性
           ^^^^^^^^^^^^^
  File "/ql/data/scripts/Zy143L_wskey/wskey.py", line 247, in check_ck
    code = int(json.loads(res.text)['retcode'])  # 使用 Json模块对返回数据取值 int([retcode])
               ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
KeyError: 'retcode'

## 执行结束... 2024-01-27 17:33:27  耗时 29 秒 
Zy143L commented 8 months ago

这个情况不是顺序问题 是京东风控 在连续检查5个账号后 京东返回"errorCode":-100 这个问题我稍后修正一下 应该是京东更新了风控方案

Zy143L commented 8 months ago

已经增加处理

refined-fish commented 8 months ago

已经增加处理

感谢大佬