Python中requests的会话保持session详解

可能大家对session已经比较熟悉了,也大概了解了session的机制和原理,但是我们在做爬虫时如何会运用到session呢,就是接下来要讲到的会话保持。

首先说一下,为什么要进行会话保持的操作?

requests库的session会话对象可以跨请求保持某些参数,说白了,就是比如你使用session成功的登录了某个网站,则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数

尤其是在保持登陆状态时运用的最多,在某些网站抓取,或者app抓取时,有的时强制登陆,有的是不登陆返回的数据就是假的或者说是不完整的数据,那我们不可能去做到每一次请求都要去登陆一下怎么办,就需要用到保持会话的功能了,我们可以只登陆一次,然后保持这种状态去做其他的或者更多的请求。

实例如下:

import requests

# 会话
session = requests.session()
data ={
   'loginName': xxxxxx,       #改为自己的用户名
   'password': 'xxxxxxxxxx'   #改为自己的登录密码
}
# 登录
url ="https://passport.17k.com/ck/user/login"

restult = session.post(url,data=data)

# print(restult.text)
# print(restult.cookies)

# 再次请求  拿取书架上的数据
url2 = "https://user.17k.com/ck/author/shelf?page=1&appKey=2406394919"
Python中的requests库是一个非常强大和流行的HTTP请求库,它提供了一个方便的session对象,可以用来在多个请求之间共享状态和信息。 session对象的妙用之一是它可以保存cookie。在使用requests发送HTTP请求时,服务器会返回一个包含session ID的cookie,这个cookie可以保存在session对象中,然后在后续的请求中自动发送给服务器。这样就能够实现模拟登录一次,然后在之后的请求中保持登录状态,无需重复登录。 另一个妙用是可以设置会话级的请求头。通过在session对象中设置请求头,可以保持在多个请求中共享相同的请求头。这对于需要在每个请求中传递相同的用户代理、认证信息或其他常用的请求头字段的情况非常有用。 session对象还可以使用连接池来管理HTTP连接。在每个请求中创建和关闭连接可能会产生很大的开销,而使用session对象可以实现连接的重用,从而提高性能和效率。 此外,session对象还提供了其他一些方便的功能,如跟踪重定向、处理SSL证书验证、处理请求超时等。它还支持将请求和响应数据保存到文件、自动处理网络代理等。 总而言之,Python中的requestssession对象是一个非常强大和方便的工具,它可以帮助我们更好地管理HTTP请求,实现登录状态的保持,共享请求头和连接管理等功能。使用session对象可以提高代码的可维护性和性能,减少重复代码。它是进行Web开发、爬虫等各种与HTTP请求相关的任务时的必备工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值