zoukankan      html  css  js  c++  java
  • python之cookies获取002

    当登录接口返回的cookies对象为RequestsCookieJar[]时,如何获取cookies呢?如下登录功能:

    import requests
    import json
    
    header ={"User-Agent": "Chrome/75.0.3770.100","Content-Type": "application/json;charset=UTF-8"}
    login_url="http://xxx:8765/Index/index"
    login_data={"mobile_phone": "18684720xxx", "pwd": "12345678"}
    login_res = requests.request("post",login_url,data=json.dumps(login_data),headers=header)
    print("返回状态码",login_res)
    print("cookies",login_res.cookies)

    请求结果为:

    返回状态码 <Response [200]>
    cookies <RequestsCookieJar[<Cookie fengwoo=191jcmgj9os7vfr58h503p6oj6 for 120.78.128.25/>]>

    cookies被存放到RequestsCookieJar[],cookie数据类型中,结构组成类似字典,是用<>和,组成,没有单引号和双引号。所以我们可以通过

    RequestsCookieJar[cookie.key] =cookie.value的形式访问cookie。

    思路:

    先将cookies转化为字典,再将字典转化为字符串

    # 使用utils.dict_from_cookiejar 将cookies数据类型转化为字典
    cookies_dict = requests.utils.dict_from_cookiejar(login_res.cookies)
    # 再使用 json.dumps 将字典转化为str字符串
    cookies_str = json.dumps(cookies_dict)
    #cookies获取,key="fengwoo"
    print(type(cookies_str),cookies_str)
    print(cookies_dict["fengwoo"])

    请求结果为:

    <class 'str'> {"fengwoo": "4va1ga0crtnajcg5illobi7ku4"}
    4va1ga0crtnajcg5illobi7ku4

    另外,如果将str字符串还原为cookies,思路与上面恰好相反:

    先将字符串转化为字典,再将字典转化为cookies

    # 使用json的loads函数,把str转化为字典。这里需要注意是loads,不是load
    cookies_dict = json.loads(cookies_str)
    # 再将字典恢复成原来的cookies
    cookies = requests.utils.cookiejar_from_dict(cookies_dict)
     
  • 相关阅读:
    BZOJ 1412: [ZJOI2009]狼和羊的故事
    Bzoj 2443: [Usaco2011 Open]奇数度数
    Bzoj 1101: [POI2007]Zap
    BZOJ 2186: [Sdoi2008]沙拉公主的困惑
    BZOJ 4804: 欧拉心算 欧拉函数
    Luogu P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
    Luogu P3000 [USACO10DEC]牛的健美操Cow Calisthenics
    BZOJ 2060: [Usaco2010 Nov]Visiting Cows 拜访奶牛
    BZOJ 3297: [USACO2011 Open]forgot
    BZOJ 2456: mode
  • 原文地址:https://www.cnblogs.com/july-1016/p/14067445.html
Copyright © 2011-2022 走看看