【Python】获取请求头和响应头的cookies

2021-11-30  本文已影响0人  Queenie的学习笔记

1.获取请求头中的cookie

url = 'http://xxx.xxx.xxx.xx:xxxx/xxxx/login'
body = {"username": "xxxxx", "password": "xxxx"}

# 1.获取请求头中的cookie
def get_cookie():
    # 创建session对象,使用session发送post请求来获取cookie的值
    session = requests.Session()
    session.post(url, data=body)
    request_cookies = session.cookies.get_dict()
    # print(request_cookies)  #可以打印出来看下有没有获取到
    return request_cookies

2. 获取响应头中的cookie

def get_cookie():       #获取cookie
    response_headers = requests.get(url).headers    #获取响应头信息
    print("response_headers:", response_headers)      #打印响应头部信息确认下响应头中是否有Cookie这个参数
    response_cookies = requests.get(url).headers["cookie"]    #如果响应头中没有cookie这个参数,那么会报KeyError:cookie错误
    print("response_cookies:", response_cookies)   #打印出来看下响应头中的cookie值是什么
    return response_cookies

3. 使用

例如我的登录接口需要在请求头中带上cookie,那么可以这样用:

# 3.登录
def login():
    headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:90.0) Gecko/20100101 Firefox/90.0",
               "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
               "Accept-Language": "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2",
               "Accept-Encoding": "gzip, deflate",
               "Content-Type": "application/x-www-form-urlencoded",
               "Connection": "keep-alive"
            }
    body = {'username': 'xxxxx', 'password': 'xxxxx'}
    reps = requests.post(url, data=body, headers=headers, cookies=get_cookie(), allow_redirects=False)  # 有的项目中登录接口会重定向,设置 allow_redirects=False 使得禁止重定向,是为了获取重定向跳转的请求url;
    print("reps:", reps)    #此时的返回是302

    url_login = reps.headers["Location"]  # 通过reps.headers[‘Location’]拿到重定向的URL
    print("重定向后的url_login:", url_login)

    res = requests.get(url_login, headers=headers, cookies=get_cookie())  # 进行get请求的提交登录
    print("status_code:", res.status_code)

#检查登录方法是否有效
login()
上一篇 下一篇

猜你喜欢

热点阅读