Urllib库对于Cookie的处理
-
CookieJar对象
-
创建
cookie = cookieJar.CookieJar()
-
cookieJar实例是一个可迭代对象,每一条 cookie属性被封装成一个类存储再cookieJar实例中,调用这个类的name和value属性,可以获取cookie的键和值
for i in cookies: print(i.name + "\t" + i.value)
-
-
LWPCookieJar
-
简介
此对像可以将cookie存入或读取在LWP格式的文件中
-
创建
cookies = cookieJar.LWPCookieJar(filename)
-
保存
cookies.save()
-
读取
cookies.load(filename)
-
-
MozillaCookieJar
-
简介
此对像可以将cookie存入或读取在Mozilla格式的文件中
-
创建
cookies = cookiejar.MozillaCookieJar(filename)
-
保存
cookies.save()
-
读取
cookie.load(filename)
-
使用Cookie
-
保存cookie到变量
from urllib import request, parse from http import cookieJar #创建cookieJar实例保存cookie cookie = cookieJar.CookieJar() #创建cookie的handler handler = request.HTTPCookieProcessor(cookie) #通过handler创建opener opener = build_opener(handler) #创建请求对象 req = request.Requst(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers) #发起请求,请求发送后绑定的handler就会为cookie中存入信息 opener.open(req) #打印所有cookie信息 for i in cookie: print(i.name + "\t" + i.value)
-
保存cookie到文件
-
使用LWP格式
from urllib import request, parse from http import cookieJar #创建LWPCookie对象,指明路径 cookie = cookieJar.MozillaCookieJar(filename) #创建绑定cookie的handler对象 handler = request.HTTPCookoeProcessor(cookie) #创建opener opener = request.build_opener(handler) #创建请求对象 req = request.Request(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers) #发送请求 opener.open(req) #保存到文件,同时指明如果被丢弃也会保存文件,文件如果存在则覆盖写入 cookie.save(ignore_discard=Ture, ignore_expires=True)
-
使用Mozilla格式
from urllib import request, parse from http import cookieJar #创建LWPCookie对象,指明路径 cookie = cookieJar.LWPCookieJar(filename) #创建绑定cookie的handler对象 handler = request.HTTPCookoeProcessor(cookie) #创建opener opener = request.build_opener(handler) #创建请求对象 req = request.Request(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers) #发送请求 opener.open(req) #保存到文件,同时指明如果被丢弃也会保存文件,文件如果存在则覆盖写入 cookie.save(ignore_discard=Ture, ignore_expires=True)
-
-
从文件中读取cookie
-
使用LWP格式
from urllib import request, parse from http import cookieJar #创建LWPCookieJar对象, 指明cookie文件路径 cookie = cookieJar.LWPCookieJar(filename) #读取文件内容到实例 cookie.load(filename, ignore_discard=True, ignore_expires=True) #创建handler handler = request.HTTPCookieProcessor(filename) #创建opener opener = request.build_opener(handler) #创建请求对象 req = request.Request(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers) #发送请求 opener.open(req)
-
使用Mozilla格式
from urllib import request, parse from http import cookieJar #创建MozillaCookieJar对象, 指明cookie文件路径 cookie = cookieJar.MozillaCookieJar(filename) #读取文件内容到实例 cookie.load(filename, ignore_discard=True, ignore_expires=True) #创建handler handler = request.HTTPCookieProcessor(filename) #创建opener opener = request.build_opener(handler) #创建请求对象 req = request.Request(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers) #发送请求 opener.open(req)
-
-
从变量中读取cookie
from urllib import request, parse from http import cookieJar #从某个函数中获取cookieJar对象 cookieJar = getCookieJar() #创建handler handler = requst.HTTPCookieProcessor(cookieJar) #创建opener opener = requst.build_open(handler) #创建请求对象 req = request.Request(url, bytes(parse.urlencode(data), encoding="utf-8"), headers=headers) #发送请求 opener.open(req)