自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

原创 前端登录知识

Cookie + Session 登录请求每次都是独立的 每次都要登录解决就是 cookie + session客户端向服务器请求 带上的是 cookie服务器为客户端开辟内存空间是 session登录成功后 将sessionId 放进 cookie服务器要保存很多用户的session 浪费资源无法避免 csrf攻击token 登录解决 Cookie + session 的问题登录成功后生成token 返回给客户端, 客户端自由保存。 后面验证token下发成功后 服务

2022-03-10 08:43:18 94443

原创 js语法(5)

赋值表达式 右边部分右值表达式 ( RightHandSideExpression )在JS中 规定在等号右边表达式叫做条件表达式运算符的优先级 语法角度-> 表达式结构乘法表达式和加号运算符构成加法表达式更新表达式 UpdateExpression– a;++ a;a –a ++一元运算表达式 unaryExpression只需要一个表达式的运算符 叫做一元运算符5+6 ( +号需要两个操作数 )5++ ( ++ 只需要一个操作数 )更新表达式搭配一元运算符,

2021-08-01 09:18:59 55344

原创 js语法(4)

表达式语句由 运算符连接变量 或者 直接量构成A. PrimaryExpression 主要表达式* Primary Expression 表达式的原子项 ( 表达式的最小单位,所涉及的语法结构也是优先级最高的 )任何表达式加上圆括号都被称为 Primary Expression 直接量 直接用某种语法写出来的具有特定类型的值 "Hello world"; 123; null; true; false; 直接量的形式定义对象 ( function、{和..

2021-08-01 09:18:26 146479

原创 js语法(3)

普通语句重点放在循环语句 声明型语句表达式语句 ( 看JS语法_3.txt )由运算符连接变量 或者 直接量构成** 直接量语句块{var x, y;x = 10;y = 20;}空语句 ( 仅仅是从语言设计完备性的角度考虑,允许插入多个分号而不抛出错误 );if语句switch语句在js中其实没什么必要用 用if去代替循环语句for循环 for(i = 0; i < 100; i++) console.log(i); ..

2021-08-01 09:17:57 145052

原创 js语法(2)

脚本和模块的区别脚本:由浏览器或者node环境引入执行的 脚本具有主动性的JavaScript代码段 控制宿主完成一定任务的代码 引入: <script src='...js'></script> 包含: js语句模块:只能由JavaScript代码用import引入执行的 被动性的JavaScript代码段 等待被调用的库 直接import 只是保证了这个模块代码被执行 引入它的模块是无法获得它的任何信息 引入: expo..

2021-08-01 09:17:17 35838

原创 js语法(1)

js自动插入分号规则a. 什么时候需要写分号 什么时候不能写分号要有换行符,且下一个符号是不符合语法的,那么就尝试插入分号。有换行符,且语法中规定此处不能有换行符,那么就自动插入分号。源代码结束处,不能形成完整的脚本或者模块结构,那么就自动插入分号。no LineTerminator here 规则表示它所在的结构中的这一位置不能插入换行符。 带有标签的continue语句 不能在continue后插入换行 带标签的break语句 不能在break后插入换行 return后不能插入换行..

2021-08-01 09:16:38 144475

原创 js执行(4)

completion类型造成以下这种差异是因为 js中的Completion Record function foo(){ try{ return 0; } catch(err) { } finally { console.log("a") } } console.log(foo()); function foo(){ try{ return 0; } catch(err) { } finally { ..

2021-08-01 09:15:50 210910

原创 js执行(3)

几种函数a. 普通函数function foo(){};b. 箭头函数const foo = () => {}c. 在class中定义的函数 ( 方法 )class C {foo(){}}d. 生成器函数 ( function* )function* foo(){ }e. 用class定义的类class Foo {constructor(){// code}}f. 异步函数: 普通函数、箭头函数和生成器函数加上async关键字 async function ..

2021-07-29 21:16:18 163452

原创 js执行介绍(2)

闭包环境部分:1. 环境:函数的词法环境( 执行上下文的一部分 )2. 标识符列表: 函数中用到的未声明的变量表达式部分:函数体lexical environment:词法环境,当获取变量或者 this 值时使用。variable environment:变量环境,当声明变量时使用。code evaluation state:用于恢复代码执行位置。Function:执行的任务是函数时使用,表示正在被执行的函数。ScriptOrModule:执行的任务是脚本或者模块时使用,表示正在被执..

2021-07-29 21:15:18 160940

原创 js执行介绍(1)

宿主发起的任务 宏观任务宏任务可能会执行的代码包括 脚本 模块 函数体JavaScript引擎发起的任务 微观任务宏观任务中又包含了一个微观任务队列许多的微观任务队列形成了宏观任务Promise永远在队列尾部添加微观任务 setTimeout等宿主API 添加宏观任务一个感性的认知: JavaScript引擎会常驻于内存中 它等待宿主把JavaScript代码或者函数传递给它执行JavaScript引擎实际上做的事情就是 不断的 等待 执行 ( node中称为事件循环 )每一个新的宏任..

2021-07-29 21:14:29 158988

原创 js对象(3)

JavaScript 中的对象分类A. 宿主对象 由 JavaScript 宿主环境提供的对象,它们的行为完全由宿主环境决定浏览器对象B. 内置对象 由 JavaScript 语言提供的对象 a. 固有对象 由标准规定,随着 JavaScript 运行时创建而自动创建的对象实例 三个值: Infinity、NaN、undefined 九个函数: eval isFinite isNaN p..

2021-07-29 21:13:51 157785

原创 js对象(2)

1 . JavaScript原型如果所有对象都有私有字段[[prototype]],就是对象的原型;读一个属性,如果对象本身没有,则会继续访问对象的原型,直到原型为空或者找到为止。操作原型的三种方法: Object.create 根据指定的原型创建新对象,原型可以是 null; Object.getPrototypeOf 获得一个对象的原型; Object.setPrototypeOf 设置一个对象的原型。 var cat = { say(){

2021-07-29 21:13:16 64539

原创 js_对象介绍(1)

为什么 JavaScript(直到 ES6)有对象的概念,但是却没有像其他的语言那样,有类的概念呢;为什么在 JavaScript 对象里可以自由添加属性,而其他的语言却不能呢?什么是面向对象一个可以触摸或者可以看见的东西;人的智力可以理解的东西;可以指导思考或行动(进行想象或施加动作)的东西。JavaScript 对象特征对象具有唯一标识性:即使完全相同的两个对象,也并非同一个对象。对象具有唯一标识的内存地址 所以具有唯一的标识对象有状态:对象具有状态,同一对象可能处于不同状态之

2021-07-29 21:12:54 67283

原创 js类型介绍

有几个小问题:为什么有的编程规范要求用 void 0 代替 undefined?字符串有最大长度吗?0.1 + 0.2 不是等于 0.3 么?ES6 新加入的 Symbol 是个什么东西?为什么给对象添加的方法能用在基本类型上? * 运算符提供了装箱操作,它会根据基础类型构造一个临时对象,使得我们能在基础类型上调用对应对象的方法类型Undefined; Null; Boolean; String; Number; Symbol; Object。a. undefined un

2021-07-27 13:01:47 26148

原创 vue小坑总结

1.清理依赖包del node_modules2.清理文件del package-lock.json3.强制清理npm cache clear --force4.重新安装npm install5.sass-loader依赖于node-sass,所以要安装node-sasscnpm install node-sass --save-dev //安装node-sasscnpm install sass-loader --save-dev //安装依赖包sass-l

2021-07-27 13:00:12 24572

原创 python配置虚拟环境

配置虚拟环境 步骤一定要cmdpip install virtualenvcd 到目录下virtualenv [-p python.exe的目录(根据要哪个版本就选哪个地址)] filenamecd 到目录下的 Scriptsactivatepip -i https://pypi.tuna.tsinghua.edu.cn/simpledeactivate.bat 退出Pycharm settings 导入 第一个是新环境 所以需要项目目录下的 venv为空才能创建新环境第二个是用当前

2021-07-27 12:59:42 23580

原创 nginx学习

正向代理在客户端(浏览器)配置代理服务器去访问隐藏用户自己(隐藏浏览器)反向代理客户端访问的是反向代理服务器隐藏服务器 ( 用户并不知道访问的是反向代理服务器 )负载均衡将请求平均分发到不同的服务器上动静分离将网页中的 静态资源和 后台资源分开部署 提高用户访问静态代码的速度降低对后台应用访问常用命令1. 启动 nginx2. 关闭 nginx -s stop3. 重启 nginx -s reload4. 测试配置文件第一部分 : 全局块配置文件开始 到 even

2021-07-27 12:59:03 22483

原创 docker介绍

公式 --Usage: docker [OPTIONS] COMMANDA self-sufficient runtime for containersOptions:–config string Location of client config files (default “/root/.docker”)-c, --context string Name of the context to use to connect to the daemon (overrides DO

2021-07-27 12:58:30 21881

原创 Commonjs与es6的模块规范

/* ES6 输出的是值的引用 export : '可以输出多个,输出方式为 {}' ,  export default : ' 只能输出一个 ,可以与export 同时输出,但是不建议这么做',  export {} : 不输出任何接口解析阶段确定对外输出的接口,解析阶段生成接口,  模块不是对象,加载的不是对象,  可以单独加载其中的某个接口(方法),  静态分析,动态引用,输出的是值的引用,值改变,引用也改变,即原来模块中的值改变则该加载的值也改变,  t

2021-07-27 12:53:32 21043

原创 前端页面布局(grid, fiex)

flexdisplay: flex;容器属性a. flex-direction 排序row(默认值):主轴为水平方向,起点在左端。row-reverse:主轴为水平方向,起点在右端。column:主轴为垂直方向,起点在上沿。column-reverse:主轴为垂直方向,起点在下沿。b. flex-wrap 换行nowrap(default) 不换行wrap 换行 第一行在上方warp-reverse 换行 第一行在下方c. flex-flow ( a, b 的简写 )fle

2021-07-27 12:52:46 20670

原创 2021前端面试--js(1)

防抖和节流 *jsA. 防抖 防止函数频繁触发 当函数停止数秒后才触发一次function debounce(fn, delay) {let timer = null; // 用来记录定时器的 只有在页面刷新的时候才会被赋值为null 再次触发就不会return function() {clearTimeout(timer);timer = setTimeout(() => {fn.apply(this, arguments);}, delay)}}B. 节流 在设定的时间内..

2021-07-27 12:51:41 20078

原创 2021前端面试-html(1)

cookies sessionStorage localStorage *浏览器a. Cookie:cookie数据始终在同源的http请求中携带( 在浏览器和服务器之间传递 )大小: 4k作用:保存用户登录状态跟踪用户行为定制页面b. sessionStorage不会自动把数据发送给服务器仅在本地保存关闭浏览器后消失是一个会话 当页面不同即使同一页面打开两次也被视为一次会话c. localStorage不会自动把数据发送给服务器仅在本地保存所有同源窗口中都是共享的用户..

2021-07-27 12:51:13 19660

原创 前端面试--css(1)

浮动高度塌陷A.造成这种原因是他们在同一个 BFC(块级上下文) 里面 形成BFC的条件浮动元素,float 除 none 以外的值;定位元素,position(absolute,fixed);display 为以下其中之一的值 inline-block,table-cell,table-caption;overflow 除了 visible 以外的值(hidden,auto,scroll);B.清除浮动 ( 当父元素没有设置高度 子元素浮动脱标的时候 下面的元素会走上来导致高度塌陷 ) ..

2021-07-27 12:50:25 32715

原创 canvas拼图滑动验证码封装成一个类

目标地址 : http://game.lianzhong.com/模拟画布滑动验证码的几个关注点:一、模拟步骤1. 点击验证按钮显示验证图片2. 拖动滑块移动到阴影区3. 等待返回 “ 验证成功 ”二、 机器操作与人类操作的区别1. 在模拟点击验证按钮的时候,会有鼠标轨迹检测,如果直接点击的话验证按钮是灰色点击不了的2. 移动滑块的时候,如果迅速的移动到阴影区也是可以被检测出是机器行为,所以要加入移动时候的 加速减速而且移动的速度要尽量随机,如果太规律也是会被检测出来的3. 过于精确的到

2020-08-28 12:53:54 22709

原创 js逆向心路历程(三):xhr的断点技巧,利用函数流

第一个网站https://translate.google.cn/前置步骤,不懂的话看回之前的文章https://blog.csdn.net/chaopicrawl/article/details/107935239经过分析我们发现只有 tk q (q是翻译的词) 是变换的,而且直接复制url到浏览器是无法访问的,这就说明了这个 tk 必不可少了正常全局搜索发现有很多tk然后 这个 url 又是 xhr 形式的所以我们可以用 xhr断点技巧去断点点击上方的 Sources 然后添加 xh

2020-08-22 00:00:05 117385

原创 js逆向心路历程(二)

接上js逆向心路历程(一)现在我们会了js的必经之路 (全局搜索 定位 断点 测试 得到结果)但其实别人设计网站的也会知道我们要这样 逆他们的加密,那么他们就会在这些步骤中加大我们的时间成本,测试成本。设计网站,跟我们爬虫其实就是 盾与矛 双方都有成本预算,只要他们的加密成本足够大,他们就不会再加强了,甚至可能会减弱,因为生意的本质是赚钱。(当然了他们成本加大了,我们的时间成本也会变大)比较难的网站:某宝,某点评,某团等,还有一些 .gov 的网站在我们按f12 的时候他就会断点卡住,不让我们看f1

2020-08-11 16:34:24 113274

原创 js逆向心路历程(一):(断点快速定位,代码量小的直接复制,Console控制台检测)

爬虫的两大难点: 1. 如何处理反爬 2. 如何处理巨大数据量首先 js逆向 是反反爬的一种, 反爬还有图文,特征识别,验证码等问题。js逆向 大多是处理 登录的信息验证,ajax 的 Fromdata数据提交 。高级爬虫的效果就是,尽量去模拟真实用户去请求网站并获取数据,js逆向也是,尽量仿真。登录的信息验证为例,我们的练手网站有什么,所有的登录网站其实都可以拿来练手 https://zhuanlan.zhihu.com/p/90464269需要模拟js逆向我们就需要一个能运行js代码的文件,

2020-08-11 12:17:03 113462 2

原创 高阶python(三) : 可变类型与不可变类型,引用计数(垃圾回收)

一、可变与不可变类型可变数据类型有: 列表 、 集合 、 字典不可变数据类型有: 整数 、 str 、 tuple(要对元组做限制,只能存放数字和字符串的不可变元素)我们可以通过 id() 这个函数来查看对象的内存地址,如果两个对象的内存地址相同则代表是可变类型,如果不相同则代表不可变类型a = 1print(id(a)) # 140716959916880a = 2print(id(a)) # 140716959916912str1 = 'ni'print(id(str1)) # 2

2020-07-28 14:50:36 19414

原创 高阶python(二) : type、object、类方法

一、 Python一切皆对象一切皆对象的意思是在Python中,各种数据类型,函数,类都可以成为对象。这种面向对象的特性就是为了追求简单,灵活,简洁,这也是Python的初衷。面向对象语言的三大特性 : 封装、继承、多态封装: 将数据或者功能隐藏起来形成一个整体(类或者函数的实现)作用:将数据或者功能保护起来,仅供外部调用继承:创建一个新子类,它继承父类(超类,基类)作用 : 共享父类的功能属性多态 : 调用相同的函数名,因对象不同而得到不同的功能。作用:增加代码灵活性且不改变

2020-07-28 10:16:34 18933

原创 高阶python(一) : 从入门到高阶需要知道的知识

介绍高阶前,我们需要熟悉以下这两个网站,这对我们认识,熟悉python都是一个很好的工具https://github.com/

2020-07-27 21:13:44 18754

原创 python爬虫广度优先与深度优先(实例说明)

感觉网上的文章都是以这篇为中心去照搬的https://www.cnblogs.com/zhaof/p/7092400.html不过这篇文章也确实把广度跟深度优先算法说完了,但感觉没有爬取实例的话还是挺抽象的,所以就配合例子说一下广/深度优先。首先我们要知道:广度优先: 把同一等级的url全部爬取网然后再往下一级的url去爬取深度优先: 把一个分页的所有等级的url从浅到深爬取完后再爬取另一个分页我们以 https://www.dytt8.net/index.htm这个电影网为例子我们的目标是

2020-06-14 10:31:48 19944 1

原创 python 生成器

1.为什么要用生成器当我们需要存储大量的数据的时候,这些数据会占用大量的内存,但如果我们只是访问这些大量数据中的其中几个,那么其实是在浪费资源的。这时候我们就需要生成器了2.生成器在大量数据面前的作用生成器可以一边循环一边运行 (返回,输出等) 后面的数据,在大量数据面前,生成器就是一边返回需要的数据然后一边运算后面的数据,那么也就没有浪费资源这一说了。3.创建生成器的方法第一种 : 将列表推导式变成元组推导式的时候就变成了生成器了。第二种: 当函数存在yield的时候,当我们调用函数的时候,

2020-06-02 23:37:53 17939

原创 关于进程、线程、协程的简单介绍(适合从未接触过的)

首先我们要认识一些软硬件知识处理机:处理机是处理计算机系统中存储程序和数据,并按照程序规定的步骤执行指令的部件 。(包括中央处理器,主存储器,输入-输出接口,加接外围设备) (硬件)cpu(处理器):计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。(硬件)内核:为众多应用程序提供对计算机硬件的安全访问的一部分软件。(软件)以上介绍均来自百度。接下来我们认识一下多任务程序运行时的一些术语并发: 两个或以上线程/进程同时跳转运行,但同一时间只有一个线程/进程运行 (单cpu)(因为

2020-05-29 16:43:12 17798

原创 python爬虫 某度翻译 js逆向

还是准备工作 抓包!!!!开发者工具具体抓包用法 请看之前的文章这里就不再介绍了https://blog.csdn.net/chaopicrawl/article/details/103560135首先,我们翻译两个单词第一个是 ‘one’ , 第二个是 ‘一’观察一下Form Data数据有什么变化翻译 ‘one’:翻译 ‘一’ :从中我们大致能得出 :from : 要翻译内容的语言to : 翻译后的语言query : 翻译内容sign:是一个变化的东西(看这种类型很像时间截 但

2020-05-15 08:30:13 17613

原创 python利用js2py库来解决某道翻译的js逆向

看回之前的文章:https://blog.csdn.net/chaopicrawl/article/details/103560135在此,我们知道了Form Data数据里面的意思。我们只需利用js文档为我们创造出Form Data数据里面的salt, sign ,ts , bv即可进行requests库的post访问得到想要的翻译内容。既然我们要利用js文档做文章,那么js的调试工具和js的基本知识是必然不可少的。关于js代码的调试 我们需要用到一些工具 。可以利用在线的js调试工具:htt

2020-05-14 21:44:34 17814

原创 利用爬虫编译翻译器 (包含防御反爬虫)

第一步:打开 http://youdao.fanyi.com/ 按F12工具进行抓包监察我们需要点击Network 勾选Preserve log 高亮XHR现在我们尝试在翻译区输入翻译内容我们发现抓取了一条POST请求的内容点击此项,然后点击Preview查看是不是我们需要的内容确认无误后我们点击 Headers 查看相关内容这是我们实际向服务器请求的网站,浏览器中显示的是...

2019-12-16 12:36:03 25441

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除