【python爬虫】cookie & session

一、什么是cookie?

  cookie是指网站为了鉴别用户身份,进行会话跟踪而存储在客户端本地的数据。

二、什么是session?

  本来的含义是指有始有终的一些列动作,而在web中,session对象用来在服务器存储特定用户会话所需要的属性及信息。

三、cookie和session产生的原因:

  cookie和session他们不属于http协议范围,由于http协议是无法保持状态,但实际情况,我们有需压保持一些信息,作为下次请求的条件,所有就产生了cookie和session。

四、cookie的原理:

  1、由服务器产生,当浏览器第一次登录,发送请求到服务器,服务器返回数据,同时生成一个cookie返回给客户端,客户端将这个cookie保存下来。

  2、当浏览器再次访问,浏览器就会自动带上cookie信息,这样服务器就能通过cookie判断是哪个用户在操作。

五、cookie的缺陷:

  1、不安全--保存在客户端。
  2、cookie本身最大支持4096(4kb)---存储大小受限。

六、session的工作原理。

  1、正是因为cookie的缺陷,所有产生了另外一种保持状态的方法---session。
  2、服务器存储session,基于http协议的无状态特征,所以服务器就不知道这个访问者是谁。为了解决这个问题,cookie就起到了桥的作用。cookie在使用的过程中,将一个叫做sessionid的字段放到cookie中,将来服务器可以通过这个id字段来查找到地上那个用户的session。
  3、session的生命周期:当用户第一次登陆时创建(生命开始),到session有效期结束(30min)。

七、当我们浏览器关闭,session是否就失效了?

  不失效,原因,session失效使用生命周期决定的。

八、cookie组成:

  1、name:cookie名称,一旦创建,不可更改。
  2、value:该cookie的值
  3、domain:者cookie可以访问网站域名。
  4、maxage:cookie的失效时间。负数是永不失效。
  5、path:这个使用路径
  6、http字段:cookie的httponly,若次属性为true,则只有http头中会带此cookie。
  7、secrue:该cookie是否仅被使用安全传输协议。
  8、size:cookie的大小

九、会话cookie和持久cookie。

  1、持久化:将内存中的数据存储到硬盘(文件中,数据库)上的过程。
  2、序列化:将对象保存到硬盘上。

    会话cookie:保存在内存中cookie,浏览器关闭,cookie失效。
    持久cookie:保存在硬盘上的cookie。

十、用requests实现登陆:

  1、只需要将【登陆后的】cookie字段封装在请求头中。
  2、使用requests的session对象登陆
    session对象可以记录登陆状态。

  使用步骤

 1 #session:记录登陆状态
 2 se = requests.Session()
 3 data = {
 4     ‘email‘:‘‘,
 5     ‘password‘:‘‘,
 6     }
 7
 8 #此时se对象就保存了登陆信息
 9 se.post(base_url,data = data,headers = headers)
10 ------------------------------------------
11 index_url = ‘http://www.renren.com//profile‘
12 #用se对象来进行个人首页的访问,就可以了
13 response = se.get(index_url,headers=headers)
14 if ‘一棵树0108‘ in response.text:
15     print(‘登陆成功!‘)
16 else:
17     print(‘登陆失败!‘)

 

原文地址:https://www.cnblogs.com/Tree0108/p/12070634.html

时间: 2024-10-09 04:08:50

【python爬虫】cookie & session的相关文章

python爬虫--cookie反爬处理

Cookies的处理 作用 保存客户端的相关状态 在爬虫中如果遇到了cookie的反爬如何处理? 手动处理 在抓包工具中捕获cookie,将其封装在headers中 应用场景:cookie没有有效时长且不是动态变化 自动处理 使用session机制 使用场景:动态变化的cookie session对象:该对象和requests模块用法几乎一致.如果在请求的过程中产生了cookie,如果该请求使用session发起的,则cookie会被自动存储到session中. 案例 爬取雪球网中的新闻资讯数据

Python爬虫知识点——Session与Cookie

Session和Cookie: Cookie:保持登录后的认证状态而保存在本地的数据 session:用cookie来标记用户,cookie携带了会话ID消息,通过检查cookie就能找到会话(session) cookie与session相互配合,一个处于客户端,一个处于服务端,两者相互协作. 会话cookie和持久cookie 会话Cookie:把cookie放在浏览器内存里,浏览器关闭后失效. 持久Cookie:保存cookie到客户端的硬盘中,下次继续使用. 由Cookie的Max Ag

Python爬虫 Cookie的使用

Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了. 在此之前呢,先介绍一个opener的概念 1.Opener 当你获取一个URL你使用一个opener(一个urllib2.OpenerDirector的实例).在前面,我们都是使用的默认的opener,也就是u

Python爬虫入门六之Cookie的使用

大家好哈,上一节我们研究了一下爬虫的异常处理问题,那么接下来我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了. 在此之前呢,我们必须先介绍一个opener的概念. 1.Opener 当你获取一个

Python爬虫入门之Cookie的使用

本节我们一起来看一下Cookie的使用. 为什么要使用Cookie呢? Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了. 在此之前呢,我们必须先介绍一个opener的概念. 1.Opener 当你获取一个URL你使用一个opener(一个urllib2.Ope

简谈-Python爬虫破解JS加密的Cookie

通过Fiddler抓包比较,基本可以确定是JavaScript生成加密Cookie导致原来的请求返回521. 发现问题: 打开Fiddler软件,用浏览器打开目标站点(http://www.kuaidaili.com/proxylist/2/) .可以发现浏览器对这个页面加载了两次,第一次返回521,第二次才正常返回数据.很多没有写过网站或是爬虫经验不足的童鞋,可能就会觉得奇怪为什么会这样?为什么浏览器可能正常返回数据而代码却不行? 仔细观察两次返回的结果可以发现: 1.第二次请求比第一次请求的

Python Web学习笔记之Cookie,Session,Token区别

一.Cookie,Session,Token简介 # 这三者都解决了HTTP协议无状态的问题 session ID or session token is a piece of data that is used in network communications (often over HTTP) to identify a session, a series of related message exchanges. Session identifiers become necessary

python Cookie Session 相关用法

Cookie一.前言1.http协议是无状态的. 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响 应情况直接影响,也不会直接影响后面的请求响应情况.2.cookie产生背景; 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留.会话中产生的数据又是 我们需要保存的,也就是说要"保持状态".3.什么是cookie? Cookie具体指的是一段小信息,它是服务器发送出来存储在浏览器上的一组组

Python爬虫爬取知乎小结

博客首发至Marcovaldo's blog (http://marcovaldong.github.io/) 最近学习了一点网络爬虫,并实现了使用python来爬取知乎的一些功能,这里做一个小的总结.网络爬虫是指通过一定的规则自动的从网上抓取一些信息的程序或脚本.我们知道机器学习和数据挖掘等都是从大量的数据出发,找到一些有价值有规律的东西,而爬虫则可以帮助我们解决获取数据难的问题,因此网络爬虫是我们应该掌握的一个技巧. python有很多开源工具包供我们使用,我这里使用了requests.Be

python爬虫(下)--模拟登录与Captcha识别

前言 之前在 python爬虫(上)–请求--关于模拟浏览器方法,中我挖了一个坑,时隔一个多月,趁着最近有点空,我想是时候填填坑了,总结总结了,不然真的就忘了 验证码 虽然之前挖坑的那篇已经说了一些,现在还是稍微说一说. 在模拟登录中,其实让写爬虫的人疼头就是验证码,只要能破掉验证码,那么登录不是问题. 验证码(Chaptcha)内容从英文字符和数字识别,到数字加减乘除,再到汉字的出现,后面还有12306的看图识别,到现在的新型的基于人的行为的谷歌的reCaptcha,验证码也是经历了很长时间的