requests使用session保持会话

在上一篇requests使用cookie模拟登陆豆瓣中,虽然使用cookie成功登录了,却存在一个问题,那就是会话不能保持,每个请求都得加上cookie进行身份验证,为了解决这一问题,需要使用另一种会话技术——session

session: 服务端会话技术,客户的验证信息存放在服务端,能在每个请求中自动携带所有cookie,从而保持会话持续。

  • 模拟登陆
    仍旧以登陆豆瓣为例(cookie信息的手动获取看上一篇),实例如下:
	import requests
	cookie_info = 'your cookiedata'
	cookie_list = [info.strip().split('=') for info in cookie_info.split(';')]
	cookies = {data[0]:data[1].replace('"','') for data in cookie_list}
	url = 'https://www.douban.com/'
	headers = {
	            'User-Agent':'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5',
	        }
	session = requests.session() #创建session对象
	requests.utils.add_dict_to_cookiejar(session.cookies,cookies) #将cookie信息存入cookiejar对象中
	res = session.get(url,headers=headers).content.decode() #进行请求
	print(res)

结果:
结果
如果,登陆成功。

  • 验证会话是否保持
    方法: 在上面的基础上,访问网站内需要登陆权限的页面,如:我的订单
	order_url = 'https://accounts.douban.com/passport/setting'
	order = session.get(order_url,headers=headers)
	print(order.text)

结果:
设置
会话保持成功

博主其他文章推荐:
[1] 【python实用特性】-切片

[2] 【python实用特性】- 迭代、可迭代对象、迭代器

[3] 【python实用特性】- 列表生成式

[4] 【python实用特性】- yield生成器

[5] Python+selenium实现自动爬取实例

[6] python爬取豆瓣Top250-改进版

[7] requests 设置请求头、代理

[8] matplotlib自定义坐标轴刻度完成20万+数据的可视化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值