python---cookie模拟登陆和模拟session原理
cookie模拟登陆:
import tornado.web class IndexHandler(tornado.web.RequestHandler):
def get(self):
#self.write("Hello world")
# 展示所有的cookie
# print(self.cookies)
# print(self.get_cookie('k1'))
# self.set_cookie('k1','999')#还有 过期时间 适用路径
# self.render("index.html")
if self.get_argument('u',None) in ['asd','zxc']:
self.set_secure_cookie('user',self.get_argument('u'))
else:
self.write('请登录') class ManagerHandler(tornado.web.RequestHandler):
def get(self, *args, **kwargs):
#默认self.get_secure_cookie('user',None)获取的数据是bytes类型
if str(self.get_secure_cookie('user',None),encoding="utf8") in ['asd','zxc']:
self.write("欢迎登录:"+str(self.get_secure_cookie('user'),encoding="utf8"))
else:
self.redirect('/index') settings ={
'template_path':'views',
'static_path':'statics',
'cookie_secret':'dafawafawfaw',
} application = tornado.web.Application([
(r"/index",IndexHandler),
(r"/manager",ManagerHandler),
],**settings) if __name__=="__main__":
application.listen(8080)
tornado.ioloop.IOLoop.instance().start()
session原理模拟(放在内存),更多是放在Redis,文件,数据库中
import tornado.web #放在内存 redis 文件 数据库
container={} class IndexHandler(tornado.web.RequestHandler):
def get(self):
if self.get_argument('u',None) in ['asd','zxc']:
import hashlib
import time
obj = hashlib.md5()
obj.update(bytes(str(time.time()),encoding="utf8"))
random_str = obj.hexdigest()
#这一段随机字符串需要传入到客户端cookie中,以便用户到服务端对应
container[random_str]={}
container[random_str]['k1']=123
container[random_str]['k2']=self.get_argument('u')+"parents"
container[random_str]['is_login']=True self.set_cookie('py_session',random_str)
else:
self.write("请登录") class ManagerHandler(tornado.web.RequestHandler):
def get(self, *args, **kwargs):
random_str = self.get_cookie('py_session', None)
if random_str:
if container.get(random_str,None):
if container[random_str]['is_login']: # 或者container.get(random_str,None)
self.write("欢迎登录" + container[random_str]['k2'])
return;
self.redirect("/index") settings ={
'template_path':'views',
'static_path':'statics',
'cookie_secret':'dafawafawfaw',
} application = tornado.web.Application([
(r"/index",IndexHandler),
(r"/manager",ManagerHandler),
],**settings) if __name__=="__main__":
application.listen(8080)
tornado.ioloop.IOLoop.instance().start()
python---cookie模拟登陆和模拟session原理的更多相关文章
- 模拟登陆并爬取Github
因为崔前辈给出的代码运行有误,略作修改和简化了. 书上例题,不做介绍. import requests from lxml import etree class Login(object): def ...
- 模拟登陆CSDN——就是这么简单
工具介绍 本篇文章主要是解说怎样模拟登陆CSDN.使用的工具是HttpClient+Jsoup 当中HttpClient主要是负责发送请求,而Jsoup主要是解析HTML 你可能对HttpClient ...
- 【转】详解抓取网站,模拟登陆,抓取动态网页的原理和实现(Python,C#等)
转自:http://www.crifan.com/files/doc/docbook/web_scrape_emulate_login/release/html/web_scrape_emulate_ ...
- python 模拟登陆,请求包含cookie信息
需求: 1.通过GET方法,访问URL地址一,传入cookie参数 2.根据地址一返回的uuid,通过POST方法,传入cooki参数 实现思路: 1.理解http的GET和POST差别 (网上有很多 ...
- python模拟登陆之下载
好长时间没有更新博客了,哈哈. 今天公司给了这么一个需求,现在我们需要去淘宝获取上一天的订单号,然后再根据订单号去另一个接口去获取订单详情,然后再给我展示到web! 中间涉及到的技术点有: 模拟登陆 ...
- python爬虫 模拟登陆校园网-初级
最近跟同学学习爬虫的时候看到网上有个帖子,好像是山大校园网不稳定,用py做了个模拟登陆很有趣,于是我走上了一条不归路..... 先上一张校园网截图 首先弄清一下模拟登陆的原理: 1:服务器判定浏览器登 ...
- Python实现网站模拟登陆
一.实验简介 1.1 基本介绍 本实验中我们将通过分析登陆流程并使用 Python 实现模拟登陆到一个实验提供的网站,在实验过程中将学习并实践 Python 的网络编程,Python 实现模拟登陆的方 ...
- Python模拟登陆万能法-微博|知乎
Python模拟登陆让不少人伤透脑筋,今天奉上一种万能登陆方法.你无须精通HTML,甚至也无须精通Python,但却能让你成功的进行模拟登陆.本文讲的是登陆所有网站的一种方法,并不局限于微博与知乎,仅 ...
- 爬虫之 cookie , 验证码,模拟登陆,线程
需求文档的定制 糗事百科的段子内容和作者(xpath的管道符)名称进行爬取,然后存储到mysql中or文本 http://sc.chinaz.com/jianli/free.html爬取简历模板 HT ...
随机推荐
- Jquery获取和修改img的src值的方法
转自:http://www.jb51.net/article/46861.htm 获取(代码): $("#imgId")[0].src; 修改(代码): $("#imgI ...
- 在Windows Server 2008R2中部署 AspNetCore
1.部署时,先安装运行时 https://dotnet.microsoft.com/download 2.安装vc_redist.x64 https://www.microsoft.com/en- ...
- 毕业设计心得与整理-APP-主题切换
1.定义主体颜色: 在style自定义了三个属性: <item name="textLight">@android:color/white</item> & ...
- Web接口测试-HttpClient
要实现Web接口测试的自动化有许多方式,比如利用Jmeter.Loadrunner等测试工具都能够实现接口的自动化测试,我们也可以利用一些开源的框架来实现接口的自动化测试,比如我们现在要说的这个Htt ...
- RocketMQ事务消息实战
我们以一个订单流转流程来举例,例如订单子系统创建订单,需要将订单数据下发到其他子系统(与第三方系统对接)这个场景,我们通常会将两个系统进行解耦,不直接使用服务调用的方式进行交互.其业务实现步骤通常为: ...
- VirtualBox 导入虚拟机时的注意事项 VDI 与VMDK
1. 建议不要勾选 as vdi vmdk 最好不过了.. 长个经验教训 以后尽量不勾选 vmdk 有很多工具能进行转换 vdi的 要麻烦一些.
- 设计模式笔记:适配器模式(Adapter)
1. 适配器模式简介 1.1 模式定义 适配器模式:通过一个类的接口转换成客户希望的另外一个接口,使原本由于接口不兼容而不能一起工作的那些类可以一起工作. 适配器从结构上分为:类适配器和对象适配器.其 ...
- WINFORM 多条件动态查询 通用代码的设计与实现
经常碰到多条件联合查询的问题,以前的习惯认为很简单总会从头开始设计布局代码,往往一个查询面要费上老半天的功夫,而效果也不咋地. 前段时间做了个相对通用的多条件动态查询面,复用起来还是挺方便的, ...
- ansible系列1-批量分发钥匙
auth.yaml- hosts: all gather_facts: false tasks: - name: deliver authorized_keys authorized_key: use ...
- BZOJ3152[Ctsc2013]组合子逻辑——堆+贪心
题目链接: BZOJ3152 题目大意: 一开始有一个括号包含[1,n],你需要加一些括号,使得每个括号(包括一开始的)所包含的元素个数要<=这个括号左端点那个数的大小,当一个括号包含另一个括号 ...