python-cookie http.cookiejar用法

一. cookie

1.简单介绍

cookie是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密);cookie存储数的据量是有限的,不同的浏览器有不同的存储大小,但一般不超过4KB,因此cookie只能存储一些小量的数据

2.cookie的参数

NAME :cookie的名称
VALUE :cookie的值
Expires :cookie的过期时间
Path :cookie的使用路径
Domain :cookie作用的域名
SECURE :是否在http协议下起作用

3.补充

cookie:在请求头(headers)中,表示http请求通过cookie字段通告服务端
set-cookie:在响应头(Request headers)中,表示的是http响应报文通过set-cookie通知客户端需要保护如下的cookie数据

cookie的格式:
set-cookie:
NAME=VALUE;Expires/Maxage=DATA;Path=PATH;Domain=DOMAN_NAME;SECURE

4.实例

此实例仅供参考

#利用cookie获取,对知乎网站发出请求并获取网页源代码
from urllib import request


url = 'https://www.zhihu.com/hot'
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4181.9 Safari/537.36',
    'cookie': '_zap=9b17672f-c366-4009-b844-c97f5399887d; _xsrf=SWFLre2nSyaV6FubjwU8zocaLK0yCFLu; d_c0="AHDa9rT3jBGPTreBfOUIlbEGbnybWacyKYU=|1594297951"; _ga=GA1.2.731389899.1594297949; tshl=; tst=r; Hm_lvt_98beee57fd2ef70ccdd5ca52b9740c49=1594865594,1594865722,1594904121,1594998557; capsion_ticket="2|1:0|10:1594998557|14:capsion_ticket|44:YjZmZTdkZWUxNWJjNDFhYzkyYWRlNWU4NWM3YjU0NzA=|85fb76e0c883ab567939fe85d8d2d8c4626ae3881fe1bef7ccfee1b5b91c7150"; SESSIONID=JP11PSP6QtX3jQu1SiDszlnmvn8otdcS1n0d2opJooT; _gid=GA1.2.1529568626.1594998558; _gat_gtag_UA_149949619_1=1; JOID=VFwTA0m-twr9_z29RLhR3NxQqipV9uU9zqts73TrwVDIl2jKd6AMH6T5PblAJhuiA5DTVwm1VoJYBpcOd_0gHcA=; osd=VVsQAkm_sAn8_zy6R7lR3dtTqypU8eY8zqpr7HXrwFfLlmjLcKMNH6X-PrhAJxyhApDSUAq0VoNfBZYOdvojHMA=; z_c0="2|1:0|10:1594998568|4:z_c0|92:Mi4xNXQ0NUV3QUFBQUFBY05yMnRQZU1FU1lBQUFCZ0FsVk5LQTNfWHdEaC12d3NNR3RuQi1QQ3B6UW1DZGRoOGdxQldn|03bf74320c177be7cfb74e24bb8439ed2ac981d484916b0d4aab863a6fb944fb"; Hm_lpvt_98beee57fd2ef70ccdd5ca52b9740c49=1594998594; KLBRSID=76ae5fb4fba0f519d97e594f1cef9fab|1594998595|1594998555'
}
req = request.Request(url,headers=headers)  #调用Request类对头部信息进行处理,并返回一个对象
resp = request.urlopen(req)     #对上一个对象发出请求,并获取一个对象
print(resp.read().decode())     #对上面的对象进行读取,并进行转码(转为utf-8编码)

输出的结果
在这里插入图片描述

二. http.cookiejar模块

1.主要的类及作用

主要的类有:CookieJar、FileCooKieJar、MozillaCookieJar
、LWPCookieJar

1.CookieJar
管理HTTPCookie值,存储HTTP请求生成的cookie,并向传出的HTTP请求添加cookie对象。整个cookie都存在内存中,对CookieJar实例进行回收后cookie也将丢失

2.FileCookieJar
包含的内容:(filename,delayload(加载的延迟)=None,policy(规则)=None);是CookieJar的延伸,通过检索cookie的信息并将cookie存储到文件中,filename是存储cookie的文件名,delayload为Ture时支持延迟访问的文件,

3.MozillaCookieJar
从FileCookieJar派生而来,创建与Mozill浏览器cookie.txt兼容FileCookieJar实例

4.LWPCookieJar
从FileCookieJar派生而来,创建与libwww-perl标准的set-Cookie3文件格式兼容的FileCookieJar实例

2.实例

方式1:

#保存百度的cookie信息
from urllib import request
from http.cookiejar import MozillaCookieJar


cookiejar = MozillaCookieJar()
header = request.HTTPCookieProcessor(cookiejar)
opener = request.build_opener(header)
resq = opener.open('https://baidu.com')
cookiejar.save('cookies.txt')   #以.txt格式文本保存cookie信息

方式2:

#保存百度的cookie信息
from urllib import request
from http.cookiejar import MozillaCookieJar


cookiejar = MozillaCookieJar('cookie.txt')
header = request.HTTPCookieProcessor(cookiejar)
opener = request.build_opener(header)
resq = opener.open('https://baidu.com')
cookiejar.save()
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pinuscembra

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值