美文网首页
【Python】获取请求头和响应头的cookies

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

作者: Queenie的学习笔记 | 来源:发表于2021-11-30 11:46 被阅读0次

    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()
    

    相关文章

      网友评论

          本文标题:【Python】获取请求头和响应头的cookies

          本文链接:https://www.haomeiwen.com/subject/nnqdxrtx.html