关于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以字典的方式展开