cookie

cookie和代理操作

吃可爱长大的小学妹 提交于 2020-03-25 15:36:00
一, 基于requests模块的cookie操作 引言:有些时候,我们在使用爬虫程序去爬取一些用户相关信息的数据(爬取张三“人人网”个人主页数据)时,如果使用之前requests模块常规操作时,往往达不到我们想要的目的,例如: #!/usr/bin/env python # -*- coding:utf-8 -*- import requests if __name__ == "__main__": #张三人人网个人信息页面的url url = 'http://www.renren.com/289676607/profile' #伪装UA headers={ 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36', } #发送请求,获取响应对象 response = requests.get(url=url,headers=headers) #将响应内容写入文件 with open('./renren.html','w',encoding='utf-8') as fp: fp.write(response.text) - 结果发现,写入到文件中的数据

Django cookie和session

大兔子大兔子 提交于 2020-03-25 05:47:34
一、会话跟踪技术 1.1 什么是会话跟踪 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了。从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束。在通话过程中,你会向10086发出多个请求,那么这多个请求都在一个会话中。 在Web中,客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束。 在一个会话的多个请求中共享数据,这就是会话跟踪技术。例如在一个会话中的请求如下:  请求银行主页; 请求登陆 (请求参数是用户名和密码) 请求转账(请求参数与转账相关的数据) 请求信誉卡还款(请求参数与还款相关的数据) 在这上会话中当前用户信息必须在这个会话中共享的,因为登录的是张三,那么在转账和还款时一定是相对张三的转账和还款!这就说明我们必须在一个会话过程中有共享数据的能力。 1.2会话路径技术使用Cookie或session完成 我们知道HTTP协议是无状态协议,也就是说每个请求都是独立的!无法记录前一次请求的状态。但HTTP协议中可以使用Cookie来完成会话跟踪!在Web开发中,使用session来完成会话跟踪,session底层依赖Cookie技术。 二、cookie介绍 cookie的由来。

Python学习笔记第二十一周

被刻印的时光 ゝ 提交于 2020-03-25 04:55:03
目录:          1、URL    2、Models     - 操作    3、Templates     - html模板的使用     - 自定义函数    4、cookie和session    5、分页(自定义分页)    6、Form验证 内容:    1、URL          默认值: urls.py url(r'^index/', views.index, {'name': 'root'}), views.py def index(request,name): print(name) return HttpResponse('ok') View Code      命名空间:       namespace是添加在name前面,和name结合一起生成URL的方法 #urls.py中 from django.conf.urls import url,include urlpatterns = [ url(r'^a/',include('app01.urls',namespace='author')), ] #app01的urls.py中 from django.conf.urls import url from app01 import views app_name = 'app01' urlpatterns = [ url(r'^index/'

Cookie,Session

左心房为你撑大大i 提交于 2020-03-25 04:41:53
Cookie http协议无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。 一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的。 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的,也就是说要“保持状态”。因此Cookie就是在这样一个场景下诞生。 它是服务器发送出来存储在浏览器上的一组组键值对,下次访问服务器时浏览器会自动携带这些键值对,以便服务器提取有用信息。 cookie的工作原理是 :由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上Cookie,这样服务器就能通过Cookie的内容来判断这个是“谁”了 获取Cookie request.COOKIES['key'] request.get_signed_cookie(key, default=RAISE_ERROR, salt='', max_age=None) 参数: default: 默认值 salt: 加密盐 max_age: 后台控制过期时间 设置Cookie rep = HttpResponse(...) rep = render(request, ...) rep.set

日常采坑,cookie不能保存中文字符串解决方案...

走远了吗. 提交于 2020-03-25 04:22:48
描述:关公不怕大刀,就怕突然脚下的坑,歪了脚... cookie不能保存中文字符串切记!!!!! 解决方案? 方案一: 将中文字符串编码成base64,取的时候再解码,如下... import base64 #存储时 编码 un = base64.b64encode(uname.encode('utf-8')) # 中文不能存储在cookie中,需要编码处理 response.set_cookie('uname', un) # 保存用户名在cookie中 # 获取时解码 uname = request.COOKIES.get('uname', '') uname = base64.b64decode(uname).decode() # base64解码 方案二: 将中文字符串以字典形式保存,再将字符串序列化,最后浏览器就可取了 # 存 trans_uname=json.dumps(username) response.set_cookie('username',trans_uname) # 取 username=request.COOKIES.get('username') 来源: https://www.cnblogs.com/jum-bolg/p/12563662.html

浅析Cookie、Session以及Token机制

最后都变了- 提交于 2020-03-25 02:41:56
一、前言   这篇博客来谈一谈 Web 应用中广泛使用的 Cookie 、 Session 以及 Token 机制,它们在 Web 应用中起着至关重要的作用,同时也是面试中的高频考点。这篇博客我主要来介绍一下这三种东西的相关概念和它们实现的原理,以及它们之间的区别。 二、正文   2.1 为什么需要它们   首先来说第一个问题,我们为什么需要这三样东西?稍微了解过 HTTP 的应该知道, HTTP 协议是一个无状态的协议。什么是无状态?就是说, HTTP 服务器对每一条请求一视同仁,不会记录每一条请求的状态,比如是由谁发出的,所有的请求对它来说都是陌生的。就算你连续向同一个服务器发送两条请求,对它来说,这也是两条完全不相关的请求。但是,我们会发现这样一个现象,当我们在一个网站登录后,服务器就好像认识了我们,我们发送出去的请求,都能得到与我们自身相关的响应。比如说我们在淘宝登录后,点击购物车,就能够看见我们自己加入的商品;而如果我们没有登录,就会被拦截下来,跳转到登录页面。这是为什么呢?不是说 HTTP 是无状态的吗。其实,这就是依赖于上面的三种机制。   2.2 Cookie    Cookie 其实就是浏览器保存在电脑中的一些文本数据,它们都是 key-value 形式的,其中包含了我们自己以及服务器的一些信息。当我们向一个服务器发送请求时,服务器可能希望我们在本地保存一些数据

localStorage使用总结

六月ゝ 毕业季﹏ 提交于 2020-03-25 00:57:51
http://www.cnblogs.com/st-leslie/p/5617130.html localStorage使用总结 一、什么是localStorage、sessionStorage 在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cookie中每条cookie的存储空间为4k),localStorage中一般浏览器支持的是5M大小,这个在不同的浏览器中localStorage会有所不同。 二、localStorage的优势与局限 localStorage的优势 1、localStorage拓展了cookie的4K限制 2、localStorage会可以将第一次请求的数据直接存储到本地,这个相当于一个5M大小的针对于前端页面的数据库,相比于cookie可以节约带宽,但是这个却是只有在高版本的浏览器中才支持的 localStorage的局限 1、浏览器的大小不统一,并且在IE8以上的IE版本才支持localStorage这个属性 2、目前所有的浏览器中都会把localStorage的值类型限定为string类型,这个在对我们日常比较常见的JSON对象类型需要一些转换 3、localStorage在浏览器的隐私模式下面是不可读取的 4、localStorage本质上是对字符串的读取

微型 Python Web 框架: Bottle

冷暖自知 提交于 2020-03-24 23:49:16
微型 Python Web 框架: Bottle 在 19/09/11 07:04 PM 由 COSTONY 发表 Bottle 是一个非常小巧但高效的微型 Python Web 框架,它被设计为仅仅只有一个文件的Python模块,并且除Python标准库外,它不依赖于任何第三方模块。 路由(Routing):将请求映射到函数,可以创建十分优雅的 URL 模板(Templates):Pythonic 并且快速的 Python 内置模板引擎,同时还支持 mako, jinja2, cheetah 等第三方模板引擎 工具集(Utilites):快速的读取 form 数据,上传文件,访问 cookies,headers 或者其它 HTTP 相关的 metadata 服务器(Server):内置HTTP开发服务器,并且支持 paste, fapws3, bjoern, Google App Engine, Cherrypy 或者其它任何 WSGI HTTP 服务器 安装 Bottle 正如上面所说的, Bottle 被设计为仅仅只有一个文件,我们甚至可以不安装它,直接将 bottle.py 文件下载并复制到我们的应用中就可以使用了,这是一个好办法,但是如果还是想将其安装,那么我们可以像安装其它的 Python 模块一样: sudo easy_install -U bottle

Cookie和Session的区别

半世苍凉 提交于 2020-03-24 18:18:11
由来 HTTP是无状态协议, 不能用状态来区分、管理请求和响应, 所以服务器单单从网络连接上无法知道客户的身份. 为了解决这个问题, 服务器给客户端分发一个通行证, 从客户端携带的通行证上确认客户的身份, 这就是Cookie的工作原理. Cookie Cookie是客户端保存用户信息的一种机制, 用来记录用户的一些信息. Cookie是服务器在本地机器上存储的一段文本, 并随着每次请求发送到服务器. 根据响应报文中的Set-Cookie的首部字段信息, 通知客户端保存Cookie. 当客户端再向服务器端发起请求时, 客户端会自动在请求报文中添加Cookie值, 发送到服务器. 服务器发现客户端发送过来的Cookie后, 会检查是哪个客户端发过来的请求, 对应服务器上的记录, 得到之前的状态信息. Session 服务器在执行Session机制时, 会生成Session的id值, 这个id值会发送给客户端, 并保存在客户端上, 保存的容器就是Cookie. 客户端每次请求都会把这个id值放到HTTP请求的头部发送给服务器. 当完全禁掉浏览器的Cookie时, 服务器的Session也不会正常使用. Cookie和Session的比较 Cookie数据存放在客户端上, Session数据存放在服务器上. 服务器的Session机制依赖于客户端的Cookie. Cookie不是很安全,

以淘宝为例,解析大型电商服务端架构!

廉价感情. 提交于 2020-03-24 11:28:38
3 月,跳不动了?>>> 作者:若汐缘 https://www.jianshu.com/p/796f488fd134 前言 以淘宝网为例,简单了解一下大型电商的服务端架构是怎样的。如图所示 最上面的就是安全体系系统,中间的就是业务运营系统,包含各个不同的业务服务,下面是一些共享服务,然后还有一些中间件,其中 ECS 就是云服务器,MQS 是队列服务,OCS 是缓存等等,右侧是一些支撑体系服务。 除图中所示之外还包含一些我们看不到的,比如高可用的体现。淘宝目前已经实现多机房容灾和异地机房单元化部署,为淘宝的业务也提供了稳定、高效和易于维护的基础架构支撑。 这是一个含金量非常高的架构,也是一个非常复杂而庞大的架构,当然这个架构不是一天两天演进成这样的,也不是一开始就设计并开发成这样的,对于初创公司而言,很难在初期就预估到未来流量千倍、万倍的网站架构会是怎样的状况,同时如果初期就设计成千万级并发的流量架构,也很难去支撑这个成本。 因此一个大型服务系统,都是从小一步一步走过来的,在每个阶段找到对应该阶段网站架构所面临的问题,然后不断解决这些问题,在这个过程中,整个架构会一直演进,同时内含的代码也就会演进,大到架构、小到代码都是在不断演进和优化的。所以说高大上的项目技术架构和开发设计实现不是一蹴而就的,这是所谓的万丈高楼平地起。 单机架构 从一个小网站说起,一般来说初始一台服务器就够了