自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 极验滑块验证码破解最新版

一、简述: 最近无聊想搞一下极验的滑块验证码破解这块,发现破解js代码耗时又耗力出现版本更新可能以前的所有努力都要推翻重做,不够通用性,最后还是选用selenium + PIL 来实现滑块验证码的破解。 期间也翻阅过很多文章,大多都已经失效,并且缺口位置查找和模拟滑动轨迹成功率很低,很难应用到实际开发项目中,本次是针对最新版本的极验滑块验证码进行破解。二、项目环境大致需要用到以下...

2019-10-14 17:06:42 5567 2

原创 CSS学习笔记总结(下)

一、浮动1. 浮动特性:浮动元素有左浮动(float:left)和右浮动(float:right)俩种浮动的元素会向左或向右浮动,碰到父元素边界、其他元素才停下来相邻浮动的块元素可以并在一行,超出父级宽度就换行浮动让行内元素或块元素自动转化为行内块元素(此时不会有行内元素间隙问题)浮动元素后面没有浮动的元素会占据浮动元素的位置,没有浮动的元素内的文字会避开浮动的元素,形成文字饶图的...

2019-10-13 14:24:03 194

原创 CSS学习笔记总结(上)

一、CSS简介:  为了让网页元素的样式更加丰富,也为了让网页的内容和样式能拆分开,CSS由此思想而诞生,CSS是 Cascading Style Sheets 的首字母缩写,意思是层叠样式表。 二、CSS作用:  有了CSS,html中大部分表现样式的标签就废弃不用了,html只负责文档的结构和内容,表现形式完全交给CSS,html文档变得更加简洁。三、CSS基本语法:选...

2019-10-13 14:18:11 236

原创 Linux下利用jTessBoxEditor工具进行Tesseract样本训练【图】

1. 将训练用到的所有png,jpg图片转换成.tifconvert spider_1.png spider_1.tif2. 将所有.tif合成样本文件打开jTessBoxEditor的命令:java -jar jTessBoxEditor.jar点击Tools->Merge Tiff ,按住shift键选择tif文件,然后点击确认,然后在:自定义个tif名:这里输入nu...

2019-10-13 14:00:30 299

原创 ubantu中使用tesseract识别 简单验证码

环境准备:pip install pillow # 安装PIL, 处理图片的库pip install pytesseractpip install urllib # 用到urllib.request.urlretrieve来通过url下载图片到本地测试代码:import pytesseractfrom PIL import Imagefrom urllib import re...

2019-10-13 11:38:04 86

原创 selenium定位元素异常:InvalidSelectorException: Message: invalid selector

需要定位的元素的html代码为:<input class="loginbox-sbt btn-sub" type="submit" value="登录">如果直接使用find_element_by_class_name()来查找:getcheck = driver.find_element_by_class_name("loginbox-sbt btn-sub")会显示下面的错...

2019-10-13 11:30:49 4306

原创 爬虫:IP代理池的四个模块的介绍以及各个模块的实现(下)

代理池分为4个模块:存储模块、获取模块、检测模块、接口模块。 模块作用存储模块存储模块使用Redis的有序集合,用来做dialing的去重和状态表示,同时它也是中心模块和基础模块,将其他模块串连起来获取模块获取模块定时从代理网站获取代理,将获取的代理传递给存储模块,并保存到数据库检测模块检测模块定时从存储模块获取所有代理,并对代理进行检测,根据...

2019-10-13 10:40:22 162

原创 爬虫:IP代理池的四个模块的介绍and各个模块的实现(上)

代理池分为4个模块:存储模块、获取模块、检测模块、接口模块。 模块作用存储模块存储模块使用Redis的有序集合,用来做dialing的去重和状态表示,同时它也是中心模块和基础模块,将其他模块串连起来获取模块获取模块定时从代理网站获取代理,将获取的代理传递给存储模块,并保存到数据库检测模块检测模块定时从存储模块获取所有代理,并对代理进行检测,根据...

2019-10-13 10:32:14 140

原创 如何获取大量廉价可靠代理IP地址?

 难在怎么拥有起码5000个以上的IP地址,对于我这种平民玩家,我更喜欢免费代理,毕竟不花钱,想要免费代理的话,这个我们可以弄个Cookie池, 免费代理网站:代理名网站快代理https://www.kuaidaili.com/ops/66免费代理http://www.66ip.cn/IP海http://www.iphai.com...

2019-10-12 17:02:31 1066

原创 爬虫-IP屏蔽题目: 俩种解题方法

题目:技术难点: 这个题目的难点在于,你登录跟没有登录,获取到的数据是不一样的,之前爬取其他题目的时候,发现结果怎么也不对,后来通过下载的html分析,才发现,原来自己爬取到的数据,是未登录的数据。解题方法: 登录信息,直接headers添加cookies, 或者自己重新通过他们的登录平台先登录,获取信息后再添加proxy,然后再爬取。方法一:selenium的运用(速度慢)创建 w...

2019-10-12 16:31:26 158

原创 HTML---table表格

html中 < table>标签中常用属性:属性功能border定义表格的边框,设置值是数值cellpadding定义单元格内容与边框的距离,设置值是数值cellspacing定义单元格与单元格之间的距离,设置值是数值align设置整体表格相对于浏览器窗口的水平对齐方式,设置值有: left | center | righttabl...

2019-10-12 16:19:20 90

原创 HTML学习笔记---html表单(form)

HTML表单功能: HTML表单用于搜集不同类型的用户输入,表单由不同类型的标签组成。<form>标签及属性用法如下: :定义整体的表单区域属性功能action定义表单数据提交地址method属性定义表单提交的方式,一般有"get"方式和"post"方式<form>标签中内部子标签及属性用法如下:< label >...

2019-10-12 16:13:25 91

原创 如何区别cookie与session?

前提: http协议是无状态的。下一次去访问一个页面时,并不知道上一次对这个页面做了什么,这个时候就需要状态保持cookie与session.cookie与session俩者对比:cookie: cookie是由服务器生成,存储在浏览器端的一小段文本信息特点:以键值对方式进行存储通过浏览器访问一个网站时,会将流浪器存储的跟网站相关的所有cookie信息发送给该网站的服务器。coo...

2019-10-12 16:01:54 91

原创 Linux中虚拟环境的创建与使用

问题: 安装同一个包的不同版本,后安装的包会把原来安装的包覆盖掉。这样,如同一台机器上的俩个项目依赖于相同包的不同版本,则会导致一些项目运行失败。解决的方法就是: 虚拟环境虚拟环境:  虚拟环境是真实python环境的复制版本,可以安装不同的版本的包,然后新的包会覆盖旧的包  在虚拟环境中使用的python是复制的python,安装python包也是安装在复制的python中。&n...

2019-10-12 15:55:50 372

原创 Django中CSRF攻击原理及其防御方式

CSRF攻击原理(只正对POST请求方式):登入正常网站之后,你的浏览器会保存sessionid,如果你没有退出你不小心访问了另一个恶意网站,这个网站是模拟正常网站中修改密码的网站,且隐藏那些修改信息,可能只显示一张图片或者是一个按钮,你不小心点击这个按钮,那个这个按钮的action就是去访问正常网站的修改用户的界面的url并附带有修改密码的post表单,那么你的数据就会被修改。&nb...

2019-10-12 15:40:46 178

原创 Python中单例模式详细解析(面试题目)

单例设计模式:目的::让类创建的对象,在系统只执行唯一实例,即每一次执行类名.()返回的对象,内存地址是相同的,可以通过id(实例对象)来查看实例对象对应的内存空间地址。应用场景: 音乐播放器、回收站对象、打印机对象… __new__方法:使用类名()创建对象时,python的解释器首先会调用__new__方法为对象分配空间,然后在执行__init__初始话实例对象...

2019-10-12 15:18:46 148

原创 pycharm__最常用的快捷键

ctrl+d://复制一行ctrl+x://删除一行alt+shift+上下箭头 : 往上下移动代码行Ctrl + Alt + L 代码格式化(在pycharm中需额外配置) 在setting 搜索: reformatAlt + Enter 快速修正ctrl+alt+v 自动生成局部变量Ctrl + P 参数信息(在方法中调用参...

2019-10-12 15:07:47 200

原创 Python的单例模式的几种实现方式及优化

阅读目录(Content)单例模式实现单例模式的几种方式1.使用模块2.使用装饰器3.使用类4.基于__new__方法实现(推荐使用,方便)5.基于metaclass方式实现相关知识实现单例模式单例模式单例模式(Singleton Pattern)是一种常用的软件设计模式,该模式的主要目的是确保某一个类只有一个实例存在。当你希望在整个系统中,某个类只能出现一个实例时,单例对象...

2019-10-12 14:36:52 80

原创 《如何高效学习》

思维导图默认阅读顺序:从右→左,顺时针方向。精彩摘录* 如果只用一种方式了解某样事物,你就不会真正了解它。了解事物真正含义的秘密取决于如何将其与我们所了解的其他事物相联系。* 其实我们每个人早就掌握了站在外面看知识的本领,这就是「比喻」。* 深入了解规则,所以也能打破它。* 整体性学习在于创造信息的网络,一个知识与另一个知识相互关联,那些相互关联的知识网络使你真正做到对知识的完全理解...

2019-10-11 19:09:32 97

原创 Django | Authentication | 默认用户认证系统

前言:Django自带一个用户认证系统,用于处理用户账户、群组、许可和基于cookie的用户会话。一、django默认的用户认证系统1,Django的认证系统包含了身份验证和权限管理两部分。认证:验证一个用户是否它声称的那个人,可用于账号登录。授权:授权决定一个通过了认证的用户被允许做什么。2,Django认证系统位置django.contrib.auth 包含认证框架的核心...

2019-10-10 17:08:43 509

原创 你知道的SQL数据库优化

前言:数据库是Web应用至关重要的一个环节,其性能的优劣会影响整合Web应用,所以需要对数据库进化优化以提高使用性能。以下提供几点方法作为参考。1 SQL查询优化避免全表扫描,应考虑在 where 及 order by 涉及的列上建立索引;查询时使用select明确指明所要查询的字段,避免使用select *的操作;SQL语句尽量大写,如 SELECT name FRO...

2019-10-10 15:11:00 67

原创 数据库-四大事务(ACID)之 隔离级别 以及 各种锁的详解

四大特性:四大特性含义原子性一个事务要么成功,要么失败一致性一个事务执行之前跟执行之后状态保持一致例A和B一共100元,无论中间转账多少次、转多少,最终两人的钱加一起还是100元隔离性两个事务之间互不干扰例A给B转账,不会影响到B给C转账,属于两个事务持久性事务一旦提交,永久保存隔离级别隔离级别可能出现的情况...

2019-10-10 14:52:40 102

原创 MySQL主从同步安装 | 读写分离(None)

MySQL主从同步原理分为以下三步:master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);slave将master的binary log events拷贝到它的中继日志(relay log);slave重做中继日志中的事件,将改变反映它自己的数据。使用主从同步的优点:提高读写性能因为主从同步之后,数...

2019-10-10 14:27:54 115

原创 Python | Mysql | 事务 和 索引

前言:事务就是用户定义的一系列执行SQL语句的操作, 这些操作要么完全地执行,要么完全地都不执行, 它是一个不可分割的工作执行单元。事务的使用场景:在日常生活中,有时我们需要进行银行转账,这个银行转账操作背后就是需要执行多个SQL语句,假如这些SQL执行到一半突然停电了,那么就会导致这个功能只完成了一半,这种情况是不允许出现,要想解决这个问题就需要通过事务来完成。接下来,我就以银行转账为...

2019-10-10 13:46:38 62

原创 MySQL---InnoDB、MyISAM索引实现过程

MySQL现在最常用的存储引擎是MyISAM、InnoDB(默认)两者实现的底层原理都是B+Tree索引文件结构。MyISAM索引实现过程解析:(非聚集)目标:上图以主键索引为例:想要查索引为50的那一条记录信息。步骤如下:1.cpu先去根节点拿数据到内存中查看,没有找到数据,去箭头1方向查找。2.把非叶子结点的数据拿到内存中查看,也没有发现数据,应该去箭头2的方向查找。3.在...

2019-10-10 13:37:17 154

原创 MySQL索引存储结构(5种)

索引是帮助MySQL高效获取数据的排好序的数据结构。MySQL数据库索引存储结构一般有以下几种。二叉树红黑树HASHB-TreeB+Tree(现在常用)首先我们要了解的是:索引文件是存储在磁盘中的,cpu到磁盘拿取数据一般经过两步:寻道时间(磁头左右移动,速度慢,耗时)和旋转时间(磁盘旋转,快)。cpu获取数据后存入内存中的这一过程,被称为一次磁盘I/O。接下来介绍一下几...

2019-10-10 13:22:34 6486

原创 Python | MySQL | 查询汇总

前言:承接上篇数据库基础增删改查操作。文章以students表为例1,查询练习:select * from students ;select 表别名.字段 .... from 表名 as 表别名;#例:可以给表起别名,查询表的name字段select s.name from students as s; distinct 字段 去重 #例:性别去重 select dist...

2019-10-10 11:28:39 62

原创 Python | Mysql | 数据库操作命令大全

前言:数据库就是存储和管理数据的仓库,数据按照一定的格式进行存储,用户可以对数据库中的数据进行增加、修改、删除、查询等操作。数据库分为:关系型数据库、非关系型数据库 (今天主分享mysql)关系型数据库 :是指采用了关系模型来组织数据的数据库,简单来说,关系模型指的就是二维表格模型,好比Excel文件中的表格,强调使用表格的方式存储数据。关于库和表的命令如下:关于库的命令:创建: cr...

2019-10-10 10:41:28 261

原创 Python | 浅拷贝 | 深拷贝

前言在实际项目中,我们想修改a的数据,同时又不想影响b的数据时 ,就需要用到拷贝。拷贝分为浅拷贝和深拷贝。接下来,我主要以代码和图片的方式来解析它们两者之间的区别。浅拷贝:( copy.copy() )"""可变类型:单层列表"""import copya = [10, 20]b = copy.copy(a)print(a)print(b) # a,b值一致...

2019-10-09 21:59:50 98

原创 Python | 内存管理机制

前言:关于python的内存管理机制,我们可以从以下三个方面来解析:引用计数垃圾回收(标记清除、分代回收)小整数对象池1,引用计数:1.1引用计数增加的情况:创建一个对象,例例如:a = ‘carry’,引⽤用计数 1。赋值 b=a, 引⽤用计数加1浅拷⻉里的引用,函数的传参foo(x)等作为容器对象的一个元素:a=[1,x,’22’]1.2引用计数减少...

2019-10-09 20:38:03 56

原创 详解TCP和UDP的区别? 教你快速理解TCP的三次握手(建立连接)和四次挥手(关闭连接)!

原创 详解TCP和UDP的区别?教你快速理解三次握手和四次挥手! ...

2019-10-09 20:25:13 665

空空如也

空空如也

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

TA关注的人

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