某东 appck 转pt_pin 转wq_skey-程序员宅基地

技术标签: python  Python  

首先获取tokenkey,签名算法自己找

    sv = '120'
    function_id = 'genToken'
    st = int(time.time() * 1000)
    client_version = '11.3.2'
    client = 'android'
    body = json.dumps({
        "to": "https://plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html",
    })
    uuid_str = hashlib.md5(str(int(time.time() * 1000)).encode()).hexdigest()[0:16]
    sign = f'functionId={function_id}&body={body}&uuid={uuid_str}&client={client}&clientVersion={client_version}&st={st}&sv={sv}'

    sign = get_sign(sign)
    print(f"sign={sign}")
    url = 'https://api.m.jd.com/client.action?functionId=' + function_id
    params = f'&clientVersion={client_version}&build=87697&client={client}&uuid={uuid_str}&st={st}&sign={sign}&sv={sv}&lang=zh_CN'
    headers = {
        'charset': "UTF-8",
        'user-agent': "okhttp/3.12.1;jdmall;iphone;version/10.3.5;build/92610;",
        'content-type': "application/x-www-form-urlencoded; charset=UTF-8",
        'cookie': ck
    }
    body = 'body=' + quote(body)

    resp = requests.post(url=url + params,
                         data=body,
                         headers=headers)
    token_key = resp.json()['tokenKey']
    print(f'token_key={token_key}')
    appjmp(token_key)

然道tokenkey以后转pt_pin (移动端cookie):

def appjmp(tokenKey):  # 方法 传递 wskey & tokenKey
    if tokenKey == 'xxx':  # 判断 tokenKey返回值
        return False  # 返回 -> False[Bool], Wskey
    headers = {
        'User-Agent': ':Dalvik/2.1.0 (Linux; U; Android 5.1.1; VOG-AL00 Build/LMY48Z)',
        'accept': '*/*',
        'x-requested-with': 'com.jingdong.app.mall'
    }  # 设置 HTTP头
    params = {
        'tokenKey': tokenKey,
        'to': 'https://plogin.m.jd.com/jd-mlogin/static/html/appjmp_blank.html'
    }  # 设置 HTTP_URL 参数
    url = 'https://un.m.jd.com/cgi-bin/app/appjmp'  # 设置 URL地址
    try:  # 异常捕捉
        res = requests.get(url=url, headers=headers, params=params, verify=False, allow_redirects=False,
                           timeout=20)  # HTTP请求 [GET] 阻止跳转 超时 20秒
    except Exception as err:  # 异常捕捉
        print("JD_appjmp 接口错误 请重试或者更换IP\n")  # 标准日志输出
        print(str(err))  # 标准日志输出
        return False  # 返回 -> False[Bool], Wskey
    else:  # 判断分支
        try:  # 异常捕捉
            res_set = res.cookies.get_dict()  # 从res cookie取出
            print(f"cookies={res_set}\n")
            pt_key = 'pt_key=' + res_set['pt_key']  # 取值 [pt_key]
            pt_pin = 'pt_pin=' + res_set['pt_pin']  # 取值 [pt_pin]
            jd_ck = str(pt_key) + ';' + str(pt_pin) + ';'  # 拼接变量
            print(f"ck={jd_ck}\n")
            to_login(jd_ck)

        except Exception as err:  # 异常捕捉
            print("JD_appjmp提取Cookie错误 请重试或者更换IP\n")  # 标准日志输出
            print(str(err))  # 标准日志输出
            return False  # 返回 -> False[Bool], Wskey
        else:  # 判断分支
            if 'fake' in pt_key:  # 判断 pt_key中 是否存在fake
                return False  # 返回 -> False[Bool], Wskey
            else:  # 判断分支
                return True, jd_ck  # 返回 -> True[Bool], jd_ck

转wq_skey(也是移动端的一种cookie,qq环境是这个)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/ngy515343908/article/details/116352136

智能推荐

mysql xml字段转json格式_mysql将xml数据或者json数据转换为表格。-程序员宅基地

文章浏览阅读131次。我需要将一个xml的数据或者json数据的字符串转化为一个mysql中的表格形式。json_extract函数只能处理单个json数据,无法处理json数组,ExtractValue函数取出来的数据是拼接在一起的,不知道怎么分开,有没有其他办法呢,请教各位大神数据样例:[{"fCategoryId":"796","fCondition":"0.8"},{"fCategoryId":"730","f...

数字电路期末实验报告_module shared(x1,x2,s,f); input x1,x2,s; output f;-程序员宅基地

文章浏览阅读327次。首先在我的电脑选择一个盘打开然后在一个位置创建一个文件夹然后新建一个记事本文档将文件后缀名改为.v然后将实验代码输入到记事本文件中并保存然后打开Quartus II软件新建一个工程在弹出的选择界面中找到刚刚建立的记事本文档,工程名和记事本文档名字一样然后在下一个选择框中同样找到那个文件所在位置,调整相应的状态点击完成然后代码就导入到了工程中在最左侧的方框中右键文件点击setting然后又会弹出一个选择框然后调成modesilm然后调整一系列数据点击OK然后最左侧方框点击files点击文件右_module shared(x1,x2,s,f); input x1,x2,s; output f; assign f = (~s&x1)|(s&x2)

基于51单片机的心率体温检测系统设计_51单片机心率体温测量仪-程序员宅基地

文章浏览阅读1.2k次,点赞29次,收藏24次。摘 要 IAbstract II引 言 11 控制系统设计 21.1 主控系统方案设计 21.2 脉搏传感器方案设计 31.3 系统工作原理 52 硬件设计 62.1 主电路 62.1.1 单片机的选择 62.1.2 STC89C51的主要功能及性能参数 62.1.3 STC89C51单片机引脚说明 62.2 驱动电路 82.2.1 比较器的介绍 82.3放大电路 82.4最小系统 113 软件设计 133.1编程语言的选择 133.2 Keil程序开发环境 _51单片机心率体温测量仪

[IOT]NB模组使用流程_nb-iot工作步骤-程序员宅基地

文章浏览阅读770次,点赞3次,收藏8次。OneNET介绍_nb-iot工作步骤

Android Camera MIPI接口知识总结_csi的带宽估算adc色彩深度-程序员宅基地

文章浏览阅读1.5w次,点赞12次,收藏84次。Android Camera MIPI接口知识总结_csi的带宽估算adc色彩深度

计算机网络原理公式,计算机网络原理公式及计算题-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏19次。计算机网络原理公式及计算题 (25页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!11.90 积分 计算机网络原理公式及计算题第三章物理层公式一:数据传输速率的定义和计算每秒能传输的二进制信息位数,单位为位/秒(bits per second),记作bps或b/s R=1/T*Log2N(bps)T为一个数字脉冲信号的宽度(全宽码情况)或重复周期(归..._计算机网络公式总结

随便推点

2023年美赛C题评委文章及O奖论文解读 - 美国大学生数学建模竞赛 从评委和O奖论文出发-O奖论文_美赛2023c题o奖论文-程序员宅基地

文章浏览阅读2.2k次,点赞31次,收藏36次。每年美赛结束后,评委根据参赛情况撰写评论文章,其中包括:以23年C题为代表的预测模型问题的关键点是什么?对23年C题各个小问的评价:哪些队伍的方案做得好,好在哪里?对文章其他部分的评价:数据预处理、敏感性分析…本文结合评委意见和当年O奖论文对23年美国大学生数学建模竞赛C题做出要点分析和总结,让我们一起来看看2023年美赛C题赛题分析吧!_美赛2023c题o奖论文

绕过cdn-程序员宅基地

文章浏览阅读251次,点赞8次,收藏2次。通过在线工具超级ping,如果结果各地ping ip不太一样,证明使用了cdn。服务器可能会有多个域名,如果它的服务器的子域名可能因为访问量问题而不需要做CDN。这样我们直接nslookup 域名就直接解析出目标真实ip了。和各地ping一个原理,服务器可能在偏僻国家并没有做cdn。以国外的ip请求访问 因为可能对方只做了国内的cdn。查询历史ip域名绑定记录,很可能ip还是和现在一样的。直接ddos对方 消耗掉cdn资源。ico文件的hash值在引擎上搜索。通过邮件原文查看真实ip。

Sublime怎么关闭update更新提醒-程序员宅基地

文章浏览阅读444次。在Sublime的setting里面添加:"update_check": false,保存即可。

微服务链路跟踪_微服务链路追踪-程序员宅基地

文章浏览阅读455次。一、认识微服务跟踪的基础设施1.zipkintwitter开源的分布式跟踪系统,它的主要功能是收集系统的时序数据,从而追踪微服务架构的系统延时等问题。同时,它还提供了一个非常友好的界面,来帮助分析追踪数据。另外,它还有助于分析微服务之间的依赖关系。2.Spring Cloud Sleuth为Spring Cloud提供了分布式跟踪的解决方案。3.微服务跟踪的目的服务之间通过网络进行..._微服务链路追踪

java报错找不到符号_isnull找不到符号-程序员宅基地

文章浏览阅读1.7k次。报错找不到符号,可能原因很多,也许是jdk版本原因,也许是配置原因,等等先查看下以下配置框选中的,应该为勾选状态。如果不是这个原因,再去查找其他可能。_isnull找不到符号

如何在阿里云上部署django网站(2)——使用MySQL数据库_django使用阿里rds mysql数据库-程序员宅基地

文章浏览阅读1.5k次,点赞2次,收藏3次。如果要在阿里云上部署django网站,建议不要使用django自带的sqlite,虽然一时省事,但带来了很多其他的麻烦。建议使用MySQL或者PostgreSQL。由于MySQL比较流行,我就选择了MySQL。安装MySQL在使用MySQL之前,首先需要安装。在ubuntu系统下,输入以下命令:sudo apt-get install mysql-serversudo apt-get isntal_django使用阿里rds mysql数据库