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)

 

 

 

 

posted @ 2020-12-01 13:11  仰望浩瀚星辰  阅读(260)  评论(0编辑  收藏  举报