python3 requests和http.cookiejar有关cookie的使用

'''

这个模块主要提供了这几个对象,CookieJar,FileCookieJar,MozillaCookieJar,LWPCookieJar。

'''

#urllib与http.cookiejar结合使用

#cookielib模块一般与urllib模块配合使用,

#主要用在urllib.requests.build_oper()函数中作为urllib.requests.HTTPCookieProcessor()的参数。

import urllib.request

import http.cookiejar

# 初始化一个CookieJar来处理Cookie

cookie=http.cookiejar.CookieJar()

#实例化一个全局opener

handler=urllib.request.HTTPCookieProcessor(cookie)

opener=urllib.request.build_opener(handler)

# 获取cookie

r=opener.open('https://www.hao123.com/')

# 访问主页 自动带着cookie信息

result = opener.open('https://www.hao123.com/')

result.status

print (result.read())

#------------------------------------------------------------------------------

import requests

#对于cookies格式的转化,提供了三个工具方法:

#requests.utils.dict_from_cookiejar(cj)

#requests.utils.cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True)

#requests.utils.add_dict_to_cookiejar(cj, cookie_dict)

#工具方法:requests.cookies.RequestsCookieJar转换成字典

load_cookies = requests.utils.dict_from_cookiejar(r.cookies)

#工具方法将字典转换成RequestsCookieJar,赋值给session的cookies.

#requests.utils.cookiejar_from_dict({c.name: c.value for c in r.cookies})

requests.session.cookies=requests.utils.cookiejar_from_dict(load_cookies)

#利用requests 库

r=requests.get('https://www.hao123.com/',cookies=load_cookies)

#获取的cookies,可以用keys()和values()看内容,但本身不是字典格式,以下可以打印出字典方式查看

r.cookies

print ({c.name: c.value for c in r.cookies})

你可能感兴趣的:(python3 requests和http.cookiejar有关cookie的使用)