吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 12029|回复: 55
收起左侧

[Python 转载] 70行代码完成,京东扫码获取Cookie

[复制链接]
从零学习的歪经小 发表于 2021-8-20 10:15
本来是想弄别的,自用,但好像不怎么好实现。就直接发出来了
没技术含量
就不注释啥的了

[Python] 纯文本查看 复制代码
# -*- coding: utf-8 -*-
import requests
import time
import re
import json


def loads_jsonp(_jsonp):
    try:
        return json.loads(re.match(".*?({.*}).*", _jsonp, re.S).group(1))
    except:
        raise ValueError('Invalid Input')


class jdthor:
    def qrcode(self):      # 保存二维码
        url = "https://qr.m.jd.com/show?appid=133&size=147"
        req = requests.get(url)
        with open("wc.png", mode="wb") as f1:
            f1.write(req.content)
        # print(req.headers)
        self.state(req.cookies.get_dict())

    def state(self, h):   # 查看扫码情况
        while True:
            smdl = h.get('wlfstk_smdl')
            codekey = h.get('QRCodeKey')
            headers = {
                "Referer": "https://union.jd.com/index",
                "Cookie": f"QRCodeKey={codekey}; wlfstk_smdl={smdl}"
            }
            url = f'https://qr.m.jd.com/check?appid=133&token={smdl}&callback=jsonp'
            req = requests.get(url, headers=headers)
            data = loads_jsonp(req.text)
            if data.get('code') == 201:
                print('\t还没扫描呢亲~')  # 未扫描
            elif data.get('code') == 202:
                print('\t\t请确认登陆')  # 请再手机端确认登陆
            elif data.get('code') == 205:
                print('\t\t\t干嘛取消登陆了')
                break  # 取消登陆
            elif data.get('code') == 203:
                print('已经过期了')
                break
            elif data.get('code') == 200:
                self.get(data.get('ticket'), smdl)
                break
            else:
                print(data)
                break
            time.sleep(1)

    def get(self, ticket, smdl):      # 获取Ck
        url = f'https://passport.jd.com/uc/qrCodeTicketValidation?t={ticket}&ReturnUrl=https://union.jd.com/index&callback=jsonp'
        headers = {
            "Referer": "https://union.jd.com/index",
            "Cookie": f"wlfstk_smdl={smdl}"
        }
        req = requests.get(url, headers=headers)
        ckdict = req.cookies.get_dict()
        print(ckdict)


if __name__ == '__main__':
    jd = jdthor()
    jd.qrcode()

免费评分

参与人数 8吾爱币 +7 热心值 +5 收起 理由
zgcwkj + 1 + 1 热心回复!
passtoworld + 1 app端二维码30天有效期,可以整一下哦
ben0221 + 1 谢谢@Thanks!
神在都市 + 1 我很赞同!
乙木之殇 + 1 + 1 我很赞同!
gunxsword + 1 + 1 谢谢@Thanks!
wx123 + 1 + 1 我很赞同!
yhk2008 + 1 我很赞同!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| 从零学习的歪经小 发表于 2021-8-20 11:31
xxzh007 发表于 2021-8-20 11:29
没懂这个要干啥,如果没有已登录的账号,这个有啥用

确实没啥用,但能用来水积分
qqask 发表于 2021-8-20 10:34
 楼主| 从零学习的歪经小 发表于 2021-8-20 11:58
常家大公子 发表于 2021-8-20 11:55
亲测可用!!
这个是PC端的ck,有效期短,楼主可研究下APP端扫码登录的,那个CK有效期是永久的

对啊,我就发现这个太短了,所以觉得没用,现在研究了一个早上的安卓版的,但没头绪。哎。
HarckerG 发表于 2021-8-20 10:54
拿来试试看
 楼主| 从零学习的歪经小 发表于 2021-8-20 11:29
qqask 发表于 2021-8-20 10:34
异地扫码可行吗?还是京东那边决定的?

没试过,应该是可以的吧
tencentma 发表于 2021-8-20 11:35
70行代码能实现,确实挺棒的
常家大公子 发表于 2021-8-20 11:55
亲测可用!!
这个是PC端的ck,有效期短,楼主可研究下APP端扫码登录的,那个CK有效期是永久的

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
从零学习的歪经小 + 1 + 1 我很赞同!

查看全部评分

剑来…… 发表于 2021-8-20 12:00
这个是pc端的还是手机端的啊
常家大公子 发表于 2021-8-20 12:01
从零学习的歪经小 发表于 2021-8-20 11:58
对啊,我就发现这个太短了,所以觉得没用,现在研究了一个早上的安卓版的,但没头绪。哎。

我私聊你,给一套源码你研究下

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
从零学习的歪经小 + 1 + 1 我很赞同!

查看全部评分

您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 00:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表