'''
这个模块主要提供了这几个对象,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})