欢迎光临 - 我的站长站,本站所有资源仅供学习与参考,禁止用于商业用途或从事违法行为!

python教程

Python京东扫码获取Cookie方法

python教程 我的站长站 2021-09-29 共134人阅读
# -*- 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('tt请确认登陆')  # 请再手机端确认登陆
            elif data.get('code') == 205:
                print('ttt干嘛取消登陆了')
                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()


标签 Python获取
相关推荐
  • Python获取
  • Python获取彩云天气实时天气API源码

    import requests # 用户输入的秘钥和经纬度(以逗号分隔)api_key = "" # 这里输入用户自己的秘钥location = "" # 输入用户的经纬度 # 抓取天气信息的函数def get_weather_info(api_key, location): try: # 实时天气API realtime_ur...

    python教程 4 4周前
  • python批量获取百度云用户份信息

    python批量获取百度云用户份信息,未编译直接发代码,能用到的自行修改,以下代码适合于在文件夹中多个文件批量提取用户信息。from aip import AipOcrimport osimport imghdrimport sys#import filetype #代{过}{滤}理服务器访问设置设置#os.environ["ht...

    python教程 19 9个月前
  • 批量获取网站百度谷歌360权重Python源码

    批量获取网站百度谷歌360权重Python源码,采用随机ua,批量抓取网站的权重。 import requestsfrom bs4 import BeautifulSoupimport timeimport random # 读取文件内容with open('www.txt', 'r') as f: content = f.read() # 提取域...

    python教程 23 1年前
  • 获取Windows电脑WiFi密码Python脚本

    获取Windows电脑WiFi密码Python脚本方便获取电脑里存储过的所有WiFi密码,其原理是自动化"netsh wlan show profiles"的查询过程,后通过正则匹配获取# subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值import sub...

    python教程 266 2年前
  • Python获取字符串字节数

    检查字符串占用的字节数。def byte_size(string): return(len(string.encode('utf-8')))byte_size(' ') # 4byte_size('Hello World') # 11

    python教程 63 2年前