session

Python爬虫笔记【一】模拟用户访问之设置请求头 (1)

偶尔善良 提交于 2020-03-14 07:38:15
学习的课本为《python网络数据采集》,大部分代码来此此书。   网络爬虫爬取数据首先就是要有爬取的权限,没有爬取的权限再好的代码也不能运行。所以首先要伪装自己的爬虫,让爬虫不像爬虫而是像人一样访问网页。废话不多说开始伪装。   1.修改请求头   这里要用到python的requests的模块,首相介绍一下http请求头,它就是你每次在访问网页时,向服务器传输的一组属性和配置信息。下面有七个字段被大多数浏览器用来初始化网络请求。 属性 内容 Host https://www.google.com/ Connection keep-alive Accept text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36 Referrer https://www.google.com/ Accept-Encoding gzip,deflate,sdch Accept-Language en-US,en;q=0.8

Django中redis的使用方法(包括安装、配置、启动)

好久不见. 提交于 2020-03-14 06:53:24
一、安装redis: 1.下载: wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2.解压 tar -zxvf redis-3.2.8.tar.gz 3.复制,放到/usr/local目录下 sudo mv ./redis-3.2.8 /usr/local/redis 4.进入到redis目录下 cd /usr/local/redis/ 5.生成 sudo make 6.测试,时间会比较长 sudo make test 7.安装,将redis的命令安装到usr/local/bin/目录中 sudo make install 8.安装成功后,进入usr/local/bin/目录中查看: cd /usr/local/bin 9.将配置文件复制放到/etc/redis目录下: sudo cp /usr/local/redis/redis.conf /etc/redis/redis.conf 可能刚开始etc下没有redis目录,需要自己手动创建一个redis文件夹。 以上在第6步的时候可能会遇到这样的问题: You need tcl 8.5 or newer in order to run the Redis testmake: *** [test] Error 1 解决办法:安装tcl ? 1 2 3 4 5 6

ajax请求后台,response.sendRedirect失效,无法重定向

梦想与她 提交于 2020-03-13 19:43:23
今天在写项目的时候,想加一个切换用户,需要清除session并且跳转到登录页面,发起一个ajax请求后,执行完发现无法跳转。 原因在于: (从网上摘录) Ajax只是利用脚本访问对应url获取数据而已,不能做除了获取返回数据以外的其它动作了。所以浏览器端是不会发起重定向的。 1)正常的http url请求,只有浏览器和服务器两个参与者。浏览器端发起一个http请求,服务器端处理后发起一个重定向,浏览器端从response中获取到重定向地址,发起另一个http url请求。也就是说,浏览器会按照response中的内容进行响应(如重定向),这是浏览器的功能决定的就得响应。 2)Ajax请求,参与者就有三个即ajax、客户端、服务器,ajax处于客户端和服务器两者之间。过程是客户端发起一个ajax请求,服务器端处理后,如果发起一个重定向,然后ajax会怎么办呢?它只会获取刚才请求返回的数据,其他的任何动作一概不去做,ajax是这么做的(ajax功能就是这么设定的,ajax框架源代码也是这么写的)。 也就是说,引入了ajax之后,ajax就插在浏览器和服务器之间了,服务器给浏览器的response被ajax拦截了,但是ajax本身却什么都不做,也不转达。 解决方法: 1.后台做完清除session后,传一个值给前台判断,在前台进行页面的跳转。 后台: @RequestMapping("

bugku 秋名山老司机

核能气质少年 提交于 2020-03-13 12:03:30
知识: 题目链接:http://123.206.87.240:8002/qiumingshan/ 在这道题中我们用了requests中的session()函数、get()函数、post()函数、下面一一说明: session对象可以使我们跨请求保持某些参数,也可以在同一个session实例发出的所有请求之间保持cookies ——创建一个session对象可以拥有以上的作用(但并没有实例化); PS:之前学了点爬虫所以以为能自己写出来,然后写post的时候懵了,session也即: session其实是一个会话类,requests的所有请求方法,底层都是调用的这个类的对象。 其他方法和session的区别在于: 直接使用requests调用请求方法发送请求,每次都会创建一个新的session(会话对象),所以没有之前请求的cookies信息 直接创建一个session对象来发请求,那么每次发请求用的都是这个会话对象,所有能够保存之前的会话信息(cookies数据) 然后get()函数,用来进行模拟发送,获得相应url站点的信息,可分为有参和无参两种情况: 无参: 如以上代码,括号内是一个url,表示获取这个url内的信息。 有参: payload = {'key1': 'value1', 'key2': 'value2'} r = requests.get("http:/

Django之权限(起步)

冷暖自知 提交于 2020-03-13 11:15:46
一. 权限概述 1. 认识权限 为什么要有权限? 因为权限让不同的用户拥有不同的功能. 权限可以对功能进行划分. 生活中处处有权限. 比如, 腾讯视频会员才有观看某个最新电影的权限, 你有房间钥匙就有了进入这个房间的权限. 同样, 程序开发过程中也有权限, 我们今天所说的权限指的是web网站权限, 对于不同用户访问web服务时应该有不同的功能. 例如: 一个公司有CEO, 销售主管, 销售等等, 不同的用户能访问的服务也不是完全相同的. 处于这样的需求下, 我们就需要权限控制了. 2. 为什么要开发权限组件? 组件可以减少代码的重复, 能提高我们的开发效率--开发一次组件, 那么在以后的项目中可以一直使用. 3. web开发中权限是指什么? 首先我们要认识到, web程序是通过 url 的切换来查看不同的页面(功能)的, 所以权限指的其实就是一个含有正则表达式的URL, 对url控制就是对权限的控制. 结论: 一个人有多少权限就取决于他有多少个URL的访问权限. 二. 权限表结构设计 1.版本一 按照生活中的实际情况来看, 一个用户有多个权限, 一个权限也可以分配给多个用户, 所以我们可以设计出下面的三张表: 分析: 设计完该表结构之后, 我们又考虑到这种情况: 如果我们再新增10个用户, 每个用户都有权限表中的2个权限, 这意味着我们就要在"权限和用户关联表"中新增40条记录.

Browser won't set ASP.NET_SessionId cookie on payment gateway's post request to our site

淺唱寂寞╮ 提交于 2020-03-13 07:32:29
问题 We're experiencing a weird problem with the payment process of our web application which results in loss of session data. In this process, after our check-out page user is redirected to payment provider's page and redirected back to our site (to a url we specify) as soon as s/he's done there. This last redirect is done by browser's evaluation of the payment provider's html code which basically consists of a form that posts to our site and a few lines of javascript code that posts that form on

redis缓存服务器(nginx+tomcat+redis+mysql实现session会话共享)

谁说我不能喝 提交于 2020-03-13 05:14:43
一,redis介绍 redis是一个key-value存储系统。和memcached类似,它支持存储的value类型相对更多,包括string(字符串),list(列表),set(集合),zset(sorted set---有序集合)和hash(哈希类型)。与memcached一样,为了保证效率,数据都是缓存在内存中。区别是redis会周期性地把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现master-slave(主从)同步。 Redis是一个高性能的key-value数据库。redis的出现,很大程度补偿了memcacehd这类key/value存储的不足,在部分场合可以对关系数据库起到很好的补充作用。它提供了java,C/C++,C#,php,javaScript,Perl,Object-C,python,Ruby等客户端,使用很方便。 如果简单的比较redis与memcached的区别,基本上有以下3点: 1,redis不仅仅支持简单的key/value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 2,redis支持数据的备份,即master-slave模式的数据备份。 3,redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。 在Reids中,并不是所有的数据都一直存储在内存中

PHP操作实现一个多功能购物网站

倖福魔咒の 提交于 2020-03-12 14:36:16
PHP操作实现一个多功能购物网站 一、需要实现的页面: Index.aspx:浏览商品页面,显示商品列表,用户可以点击“加入购物车“。 ViewCart.aspx:查看购物车页面,显示已购买的商品信息,可以点击“删除“和“提交添加订单购买”商品 ViewAccount.aspx:查看个人账户余额 Login.aspx:登录页面 二、实现功能: 1.显示商品列表 2.实现购买功能,购买的时候动态显示购物车中的商品数量和商品总价格 3.点击查看购物车后,显示已购买的商品。注意“购买数量”列,如果对一种商品点击购买多次,其“购买数量”不断增加。 4.删除购物车中已购买的商品。 如果某商品的“购买数量”为1时,则点击“删除”时,直接从购物车中删除该商品; 如果商品的“购买数量”大于1时,点击一次“删除”时,把其购买数量减1。直到该商品购买数量为1时,再点击删除时,删除该商品 5.在查看完购物车后还可以点击“浏览商品”继续购买。并在上面显示已购买的商品数量和总价格。 6.在“查看购物车“后,可以提交订单。 但在提交订单时,须完成以下功能: (a) 检查用户是否已登录,未登录则转到Login.aspx页面 (b)检查用户账户余额是否能够满足本次够买 (c)检查库存数量是否满足本次够买 (d)如果以上条件都满足则 i.从用户账户中扣除本次购买的总价格 ii.从商品库存中扣除本次每种商品的购买数量

一问带你区分清楚Authentication,Authorization以及Cookie、Session、Token

ⅰ亾dé卋堺 提交于 2020-03-12 12:18:41
1. 认证 (Authentication) 和授权 (Authorization)的区别是什么?   这是一个绝大多数人都会混淆的问题。首先先从读音上来认识这两个名词,很多人都会把它俩的读音搞混,所以我建议你先先去查一查这两个单词到底该怎么读,他们的具体含义是什么。 说简单点就是: 认证 (Authentication): 你是谁。 授权 (Authorization): 你有权限干什么。 稍微正式点(啰嗦点)的说法就是: Authentication(认证) 是验证您的身份的凭据(例如用户名/用户ID和密码),通过这个凭据,系统得以知道你就是你,也就是说系统存在你这个用户。所以,Authentication 被称为身份/用户验证。 Authorization(授权) 发生在 Authentication(认证) 之后。授权嘛,光看意思大家应该就明白,它主要掌管我们访问系统的权限。比如有些特定资源只能具有特定权限的人才能访问比如admin,有些对系统资源操作比如删除、添加、更新只能特定人才具有。 这两个一般在我们的系统中被结合在一起使用,目的就是为了保护我们系统的安全性。 2. 什么是Cookie ? Cookie的作用是什么?如何在服务端使用 Cookie ? 2.1 什么是Cookie ? Cookie的作用是什么?   Cookie 和

深入理解Cookie与Session

痞子三分冷 提交于 2020-03-12 12:16:49
1. 会话管理入门 1.1 生活中会话 我: 坤坤,你会打篮球吗? 坤坤: 当然会了,我可是咱们软件学院的篮球大使呢! 我:今年招新晚会你和壮壮一块上吧,你俩来个双簧 坤坤:没问题我最喜欢壮壮了! 我:很好,到时候安排小菊坐在前排给你俩打call♂ 。。。。。。。。 在这次生活中的会话中产生通话记录(会话数据) 1.2 软件中的会话 一次会话: 打开浏览器 -> 访问一些服务器内容 -> 关闭浏览器 登录场景: 打开浏览器 -> 浏览到登陆页面 -> 输入用户名和密码 -> 访问到用户主页(显示用户名) 修改密码(输入原密码) 修改收货地址 ....... 问题:在此处登录会话过程中产生的数据(用户会话数据)如何保存下来呢? 购物场景: 打开浏览器 -> 浏览商品列表 -> 加入购物车(把商品信息保存下来) -> 关闭浏览器 打开浏览器-> 直接进入购物车 -> 查看到上次加入购物车的商品 -> 下订单 -> 支付 问题: 在购物会话过程中,如何保存商品信息?? 会话管理: 管理浏览器客户端 和 服务器端之间会话过程中产生的会话数据。 域对象: 实现资源之间的数据共享。 request域对象 context域对象 登录场景: 小张: 输入“张三” (保存数据: context.setAttribute("name","张三")) -> 用户主页(显示“张三”) 小李: 输入“李四”