关于cookie的认识
一、关于http
无状态的认识
在网站中,http
请求是无状态的,也就是说第一次与服务器连接后并且接收到服务器的返回值的时候,就断开连接,等第二次连接的时候,又是一个新的连接,服务器并不知道之前连接过。cookie
的出现就是解决这个问题.主要原理:
- 用户第一次登陆后,服务器给浏览器返回
cookie
,客户端将cookie
保存在本地 - 用户再次访问的时候携带之前服务器返回的
cookie
,服务器会对当前用户携带过来的cookie
进行校验 - 如果当前的
cookie
校验通过后就表明当前用户之前已经登录过,否则当前用户之前没登录过
在爬虫中使用cookie
的主要作用是用来模拟登录后才能访问的网站
二、关于http.cookiejar
模块的使用
- 1、
CookieJar
: 管理Http cookie
的值,存储http
请求生成的cookie
、向传出的http
的请求添加cookie
的对象.整个cookie
都存储在内存中,对cookieJar
实例进行辣椒回收后cookie
也丢失 - 2、
FileCookieJar
: 从CookieJar
派生而来,用来创建FileCookieJar
实例,检索cookie
信息并且将cookie
存储到文件中,filename
是存储的cookie
的文件名,delayload
为True
的时候支持延迟访问文件,即只有在需要时才读物文件或在文件中存储数据. - 3、
MozillaCookieJar
:从FileCookieJar
派生而来,创建与火狐浏览器cookie.txt
兼容的FileCookieJar
实例
三、关于cookies
的方法
1、使用
requests
请求库response = requests.get(url='') response.cookies # 获取全部的cookie response.cookies.get_dict() # 将cookie以字典的方式展开