Python - Cookie的保存和加载

Cookie格式

Name/Value:设置Cookie的名称及相对应的值,对于认证Cookie,Value值包括Web服务器所提供的访问令牌。

Expires属性:设置Cookie的生存期。

Path属性:定义了Web站点上可以访问该Cookie的目录。作用的路径

Domain属性:指定了可以访问该 Cookie 的 Web 站点或域。作用的域名

SECURE属性 :是否只在https协议下起作用。

Chrome抓包
Elements:网页源代码
Console:控制台(打印)
Sources:数据来源(图片和代码)
Network:请求数据

1.将cookie值塞入请求头,可以模拟登录后访问

在代码中使用 示例:

url = 'https://xxx'

headers = {
           'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36',
            'cookie':'xxx'
}
rq = request.Request(url,headers=headers)
resp = request.urlopen(url)
print(resp.read().decode('utf-8'))

2.http.cookiejar模块

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

from urllib import request
from urllib import parse
from http.cookiejar import CookieJar

headers = {
           'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36'
}

#登录
#1 创建cookiejar对象
cookiejar = CookieJar()
#2 使用cookiejar创建一个HTTPCookieProcess对象
handler = request.HTTPCookieProcessor(cookiejar)
#3 使用上面创建的handler构建一个opener
opener = request.build_opener(handler)

#4 使用opener去发送登陆请求(账号和密码)
url = 'https://xxx'
data = parse.urlencode({'username':'xxx',
                             'password':'xxx'
                             })
rq = request.Request(url,data=data.encode('utf-8'))
opener.open(rq)

#访问个人网页
url = 'https://xxx'
rq1 = request.Request(url,headers=headers)
rp= opener.open(rq1)
print(rp.read().decode('utf-8'))

3.cookie的保存和加载

# cookie保存
from urllib import request
from http.cookiejar import MozillaCookieJar

cookiejar = MozillaCookieJar('cookie.txt')
handler = request.HTTPCookieProcessor(cookiejar)
opener = request.build_opener(handler)
rp = opener.open('http://xxx')

cookiejar.save(ignore_discard=True,ignore_expires=True)

# ignore_discard=True 保存即将到期cookie
# ignore_expires=True 如果cookie已经过期也将它保存并且文件已存在时将覆盖
#cookie加载
cookiejar = MozillaCookieJar('cookie.txt')
cookiejar.load() #load加载cookie
handler = request.HTTPCookieProcessor(cookiejar)
opener = request.build_opener(handler)
rp = opener.open('http://xxx')

for cookie in cookiejar:
    print(cookiejar)
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值