保存cookie到本地及使用cookie实现登录
第一步,保存cookie到本地
from urllib import request
from http import cookiejar
#命名文件名称
cookie_jar = cookiejar.LWPCookieJar(filename='baidu.txt')
#创建handler
cook_handler = request.HTTPCookieProcessor(cookie_jar)
#创建opener
opener = request.build_opener(cook_handler)
req = request.Request('http://www.baidu.com')
res = opener.open(req)
cookie_jar.save()
注: 此处以百度首页为例,没有带上header,如果有需要记得在Request对象后补充哟(如果是post方法,还需要加上data)
req = request.Request('http://www.baidu.com', headers='xxx', data='xxx')
第二步, 带上cookie登录
cj = cookiejar.LWPCookieJar()
#装载前面保存在本地的cookie文件
cj.load(filename='baidu.txt')
cookie_handler = request.HTTPCookieProcessor(cj)
opener = request.build_opener(cookie_handler)
#安装opener,变成一个全局的打开器
request.install_opener(opener) #如果不需要可以不要这一行
req = request.Request('http://www.baidu.com')
res = opener.open(req)
print(res.read().decode())