可能大家对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"